动态SQL元素包括 if \ choose(when \ otherwise) \where \ set \foreach \bind
1.if
select * from users where state = 1
如果传入了id 参数,则加条件
and id = #{id}
对应的接口要进行相应设置
selectUsers(HashMap); //HashMap 中包含id 来判断,也可以从javabean 中获取 property对象
多条件组合:
and id = #{id} and name = #{name}
2.choose(when \ otherwise)
and id = #{id}
and sex = 'male'
对应接口的设置形式,和if一样。
3.where ,为组装条件,会自动对 连接符 进行舍去,避免组装的SQL 报错。
select * from users
state = #{state}
id = #{id}
4.set ,主要用于需更新的列
update User
name=#{name}
sex=#{sex}
where id=#{id}
5.foreach
select * from User where id in
#{item}
对应接口使用,list作为参数。
6.bind
SELECT * FROM User Where name like #{pattern}