1)创建Dog类,在其中添加name和age属性。创建对应数据库,根据name和 age属性,使用MyBatis查询和更新Dog类,要求当name和age属性的值为空时,去掉相应的筛选添加(使用动态SQL实现)。 答案: (2)在第(1)题的基础上,查询id为3、8和2的数据,要求使用动态SQL实现。
时间: 2024-01-24 17:17:41 浏览: 12
1)创建Dog类,添加name和age属性
```java
public class Dog {
private Integer id;
private String name;
private Integer age;
// 省略getter和setter方法
}
```
2)创建对应数据库,使用MyBatis查询和更新Dog类,要求当name和age属性的值为空时,去掉相应的筛选添加(使用动态SQL实现)
```xml
<!-- DogMapper.xml -->
<mapper namespace="com.example.mapper.DogMapper">
<!-- 根据id查询Dog -->
<select id="getDogById" parameterType="int" resultType="com.example.model.Dog">
SELECT id, name, age FROM dog WHERE id = #{id}
</select>
<!-- 根据name和age查询Dog,当属性值为空时不筛选 -->
<select id="getDogByNameAndAge" parameterType="com.example.model.Dog" resultType="com.example.model.Dog">
SELECT id, name, age FROM dog
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
<!-- 更新Dog,当属性值为空时不更新 -->
<update id="updateDog" parameterType="com.example.model.Dog">
UPDATE dog
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="age != null">
age = #{age},
</if>
</set>
WHERE id = #{id}
</update>
</mapper>
```
3)查询id为3、8和2的数据,要求使用动态SQL实现
```xml
<!-- DogMapper.xml -->
<mapper namespace="com.example.mapper.DogMapper">
<!-- 根据id查询Dog -->
<select id="getDogById" parameterType="int" resultType="com.example.model.Dog">
SELECT id, name, age FROM dog WHERE id = #{id}
</select>
<!-- 根据name和age查询Dog,当属性值为空时不筛选 -->
<select id="getDogByNameAndAge" parameterType="com.example.model.Dog" resultType="com.example.model.Dog">
SELECT id, name, age FROM dog
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
<!-- 更新Dog,当属性值为空时不更新 -->
<update id="updateDog" parameterType="com.example.model.Dog">
UPDATE dog
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="age != null">
age = #{age},
</if>
</set>
WHERE id = #{id}
</update>
<!-- 查询id为3、8和2的数据,使用动态SQL实现 -->
<select id="getDogsByIds" parameterType="list" resultType="com.example.model.Dog">
SELECT id, name, age FROM dog WHERE id IN
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>
```
在Java代码中调用以上Mapper方法即可。