1. 接口
//000000000000000000000000000000000000000000 动态sql作业 0000000000000000000000000000000000000
//使用if的接口
List<User> IfFindBynameorage(User user);
// trim完成where元素的功能
List<User> TrimWhere(User user);
// trim完成set元素的功能
int TrimSet(User user);
2. 映射文件
<!--000000000000000000000000000000000000000000 动态sql作业 0000000000000000000000000000000000000-->
<!--使用if-->
<select id="IfFindBynameorage" parameterType="com.houjinqiao.pojo.User" resultType="com.houjinqiao.pojo.User">
select * from users where 1=1
<if test="uname != null and uname != ''">
and uname like concat('%',#{uname},'%')
</if>
<if test="uage != null and uage != ''">
and uage = #{uage}
</if>
</select>
<!--使用<trim>标签完成where的功能-->
<select id="TrimWhere" parameterType="com.houjinqiao.pojo.User" resultType="com.houjinqiao.pojo.User">
select * from users
<trim prefix="where" prefixOverrides="and">
<if test="uname != null and uname != ''">
and uname like concat('%',#{uname},'%')
</if>
<if test="uage != null and uage != ''">
and uage = #{uage}
</if>
</trim>
</select>
<!--使用<trim>标签完成set的功能-->
<update id="TrimSet" parameterType="com.houjinqiao.pojo.User">
update users
<trim prefix="set" suffixOverrides=",">
<if test="uname != null and uname != ''">
uname = #{uname},
</if>
<if test="uage != null and uage != ''">
uage = #{uage},
</if>
</trim>
where uid = #{uid}
</update>
3. 测试类
//000000000000000000000000000000000000000000 动态sql作业 0000000000000000000000000000000000000
//使用if标签
@Test
public void IfFindBynameorage() throws IOException {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUname("梅西");
List<User> user1 = mapper.IfFindBynameorage(user);
System.out.print(user1);
sqlSession.commit();
sqlSession.close();
}
//使用<trim>标签完成where的功能
@Test
public void trimwhere() throws IOException {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUname("梅西");
List<User> user1 = mapper.TrimWhere(user);
System.out.print(user1);
sqlSession.commit();
sqlSession.close();
}
//使用<trim>标签完成set的功能
@Test
public void trimset() throws IOException {
SqlSession sqlSession = MyBatisUtils.getSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUname("内马尔");
user.setUage(31);
user.setUid(3);
mapper.TrimSet(user);
sqlSession.commit();
sqlSession.close();
}