动态SQL:用来拼接SQL语句,可以将SQL语句中的WHERE等控制语句用动态SQL写入Mapper.xml文件配置中,当条件成立则拼接SQL语句,拼接where等控制语句,可以灵活控制SQL语句的变化,应对不同查询需求
动态SQL控制中写入了下面几个标签:
- where,用来拼接where语句
- if,用来拼接where里的and语句
- foreach,用来遍历集合,拼接SQL
动态SQL:与的应用
<!-- 动态sql查找用户列表 -->
<select id="findUserByDynamicSQL" parameterType="user" resultType="user">
SELECT * FROM USER
<!-- where,如果if成立拼接where语句 -->
<where>
<!-- 如果User传进来了id属性,那么拼接sql -->
<if test="id!=null and id!=''">
<!-- where会自动去掉条件中的第一个and -->
and id=#{id}
</if>
<!-- 如果User传进来了username属性,那么拼接sql -->
<if test="username!=null and username!=''">
<!-- where会自动去掉条件中的第一个and -->
and username=#{username}
</if>
</where>
</select>
动态SQL:与的应用:
因为是根据集合遍历,所以在传入的参数User中必须要定义一个集合属性
public class User {
//用来存储用户id的集合
private List<Integer&g