一、顶级标签
1、sql – 可被其他语句引用的可重用语句块
<sql id="valid"> where valid = 1 </sql><select id = 'queryUser'>select * from user <include refid = 'valid'></include>
2、insert – 映射插入语句
<insert id = "saveUser">insert into User (id,name,sex) values (#{id},#{name},#{sex})<insert>
3、update – 映射更新语句
<update id="updateUser">update User setname = #{name},sex= #{sex}where id = #{id}
</update>
4、delete – 映射删除语句
<delete id="deleteUser">delete from User where id = #{id}
</delete>
二、动态sql标签
1、if
<select id="findUserByName"resultType="User">SELECT * FROM UserWHERE valid = 1<if test="name!= null">AND name like #{name}</if>
</select>
2、choose (when, otherwise)
<select id="findUser"resultType="User">SELECT * FROM User WHERE age = 26<choose><when test="name!= null">AND name like #{name}</when><when test="sex!= null ">AND sex like #{sex}</when><otherwise>AND valid = 1</otherwise></choose>
</select>
3、trim (where, set)
//prefixOverrides 属性会忽略通过管道分隔的文本序列(注意此例中的空格也是必要的)。它的作用是移除所有指定在 prefixOverrides 属性中的内容,并且插入 prefix 属性中指定的内容。
<trim prefix="WHERE" prefixOverrides="AND |OR ">...
</trim>//set 元素会动态前置 SET 关键字,同时也会删掉无关的逗号
<trim prefix="SET" suffixOverrides=",">...
</trim>
4、foreach
//collection="要遍历的集合"
//item = "可以在元素体内使用的集合项"
//index = "索引"
//open = "开始字符串"
//separator = "分隔符"
//close = "结束字符串"
<select id="selectUser" resultType="User">SELECT *FROM UserWHERE ID in<foreach item="item" index="index" collection="list"open="(" separator="," close=")">#{item}</foreach>
</select>
5、bind
//bind可以创建一个变量并将其绑定到上下文
<select id="selectUser" resultType="user"><bind name="pattern" value="'%' + _parameter.getTitle() + '%'" />SELECT * FROM UserWHERE name LIKE #{pattern}
</select>
上一篇:【MyBatis 基础知识总结 1】SQL注入
下一篇:【全栈最全Java框架总结】SSH、SSM、Springboot