AND school like #{school}
注:where元素只有至少一个条件存在时,才会有where,而且,如果开头是and或者or时,where元素会自动将其舍弃。
2、trim
其实where也可以用trim来改写:
SELECT * FROM user
AND position like #{position}
AND school like #{school}
3、set
set元素会动态前置set关键字,同时也会删除无关的逗号。
update user
username=#{username},
password=#{password},
email=#{email},
ddress=#{ddress}
where id=#{id}
set也可以用trim进行改写:
update user
<trim prefix="SE
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
T" suffixOverrides=",">
username=#{username},
password=#{password},
email=#{email},
ddress=#{ddress}
where id=#{id}
4、if
SELECT * FROM user WHERE 1 = 1
AND position like #{position}
5**、choose、when、otherwish**
SELECT * FROM user WHERE 1 = 1
AND position like #{position}
AND department_name like #{department.name}
AND department_name = ‘公司’
6、foreach
SELECT id,name,age,sex,address,school FROM user u
WHERE id in
<foreach item=“item” index=“index” collection=“list”
open="(" separator="," close=")">
#{item}
当使用可迭代对象或者数组时,index 是当前迭代的次数,item 的值是本次迭代获取的元素。
当使用 Map 对象(或者 Map.Entry 对象的集合)时,index 是键,item 是值。
INSERT INTO s c h e m a N a m e . {schemaName}. schemaName.{tableName}
${key}
VALUES
to_date(#{val}, ‘yyyy-MM-dd HH24:mi:ss’)
#{val}