在mapper映射文件中写入
1. if标签
条件写在<mark>test</mark>里
select * from user where 1=1
<if test="user.age!=-1 ">
and user.age=#{
userAge}<--and 用于拼接sql语句 -->
</if>
2. where 标签——解决 where 1=1拼接
select * from user
<where>
<if test="userAge!=-1 ">
and userAge=#{
userAge}<--and 用于拼接sql语句 -->
</if>
<if test="userSex!=null ">
and userSex=#{
userSex} <--and 用于拼接sql语句 -->
</if>
</where>
3.foreach标签——子查询使用
select * from user where id in (10,20,30 )
select *from user
<where>
<if test="ids != null and ids.size()>0">
<foreach collection="ids" open="and id in (”close=")" item="uid" separator=",">
#{
uid}
</ foreach>
其中<mark>item</mark>决定下面的#{ }里的名字,ids是getIds得到的容器,从中获取item
4. sql标签——抽取重复的代码片段
用于抽取公共代码片段
4.1 抽取片段
<sql id="findUserTab">
select * from user
</sql>
4.2 引入代码片段
<include ref="findUserTab"></include >