SpringBoot整合Mybatis之动态SQL
一、概念
Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能。它存在的意义是为了解决拼接SQL语句字符串时的痛点问题。
二、if 标签
if标签可通过test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行,繁殖标签中的内容不会执行。
<!-- List<Dish> getDishByName(@Param("name") String name);-->
<select id="getDishByName" resultType="com.athorse.entities.Dish">
select * from dish where 1=1
<if test="name != null and name != ''">
and name like "%"#{name}"%"
</if>
</select>
三、choose标签
choose标签作用条件判断来拼接指定的条件,它和if不太相同,choose似类于java中的switch语句用法,直要有条件成立,其它判断将得不到执行,如果所有条件都不成立则执行otherwise标签中的内容。
格式:
<choose>
<when test=条件1>
执行的代码;
</when>
<when test=条件2>
执行的代码;
</when>
......
<otherwise>
执行的代码;
</when>
</otherwise>
</choose>