什么时动态sql:就是根据不同的条件,生成不同的sql语句
搭建环境
工具类
id随机
@SuppressWarnings("all")
public class IDUtils {
public static String getId(){
return UUID.randomUUID().toString().replaceAll("-","");
}
@Test
public void test(){
System.out.println(IDUtils.getId());
System.out.println(IDUtils.getId());
System.out.println(IDUtils.getId());
}
}
实体类
public class Blog {
private String id;
private String title;
private String author;
private Date createTime; //属性名和字段名不一致
private int views;
}
choose(when,otherwise)
<where>
<choose>
<when test="title!=null">
title=#{title}
</when>
<when test="author!=null">
and author=#{author}
</when>
<otherwise>
and views=#{views}
</otherwise>
</choose>
</where>
trim(where,set)
<update id="upDateBlog" parameterType="map">
update blog
<set>
<if test="title!=null">
title=#{title},
</if>
<if test="author!=null">
author=#{author}
</if>
</set>
where id=#{id}
</update>
<select id="queryBlogIF" parameterType="map" resultType="blog">
select * from blog where 1=1
<if test="title!=null">
and title =#{title}
</if>
<if test="author!=null">
and author=#{author}
</if>
</select>