_parameter
_parameter 表示当前传入的参数,如果查询的时候传入的参数只有一个,则使用 _parameter
E getById(Integer id);
<select id="getById" parameterType="int" resultMap="BaseResultMap">
SELECT *
FROM
库名.表名
WHERE
id = #{_parameter}
</select>
if判断
<select id="getUsers" parameterType="int" resultType="User">
SELECT id, name, phone, email FROM users WHERE 1=1
<if test="_parameter != null">
and id > #{_parameter}
</if>
</select>
大量重复的字段
<sql id="HHHHH">
id,name
</sql>
引用写法
<include refid="HHHHH"/>
foreach
1、item表示集合中每一个元素进行迭代时的别名,
2、index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,
3、open表示该语句以什么开始,
4、separator表示在每次进行迭代之间以什么符号作为分隔符,
5、close表示以什么结束,
<update id="updateBatch">
<foreach item="item" index="index" collection="list" open=""
close="" separator=";">
<if test="item.statusType.toString() == 'DELETED'">
DELETE FROM 库名.表名 WHERE id = #{item.id}
</if>
<if test="item.statusType.toString() != 'DELETED'">
UPDATE 库名.表名
<set>
modifier = #{item.modifier,jdbcType=CHAR},
<if test="item.account != null">
account = #{item.account,jdbcType=VARCHAR},
</if>
<if test="item.name != null">
name = #{item.name,jdbcType=VARCHAR},
</if>
</set>
where
库名.表名.id =#{item.id}
</if>
</foreach>
</update>
set
一定要非空判断
set为空会报错
<update id="updateFlow"> UPDATE ufis.pid SET
<if test="
used_flow != null">used_flow = used_flow + #{flow},
</if>
change_flow_time =#{changeFlowTime}WHEREid = #{id}</update>