//sql语句前置DO对象字段模版
id,
gmt_create,
gmt_modified,
user_name,
deleted
//插入sql语句后置传入对象模版
#{id},
now(),
now(),
#{userName},
#{deleted}
//批量插入sql语句后置传入对象模版,配合foreach使用
#{item.id},
now(),
now(),
#{item.userName},
#{item.deleted}
<sql id="updateColumns">
//sql语句更新列模版
<if test="userName != null and userName != ''">,
user_name = #{userName}
</if>
<if test="deleted != null">,
deleted = #{deleted}
</if>
</sql>
<sql id="batchUpdateColumns">
//sql语句批量更新列模版
<if test="item.userName != null and item.userName != ''">,
user_name = #{item.userName}
</if>
</sql>
//sql语句查询条件模版
//基础模版
AND id = #{id}
//日期格式模版
<[CDATA[
AND gmt_create >= #{start} ]]>
// <[CDATA[]]> 不让xml编译内部语句
<[CDATA[
AND gmt_create <= #{end} ]]>
<if test="userName != null and userName != ''">
//模糊查询模版
AND user_name like CONCAT('%',#{userName},'%')
</if>
</where>
</sql>
//基础实例
<insert id="insert" parameterType="UserDO">
insert into sx_user (<include refid="baseColumns"/>)
values (<include refid="insertColumns"/>)
</insert>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO sx_user (<include refid="baseColumns"/>)
VALUES
<foreach collection="items" item="item" index="index" separator=",">
(<include refid="batchInsertColumns"/>)
</foreach>
</insert>
<update id="updateById" parameterType="UserDO">
update sx_user set gmt_modified=now()
<include refid="updateColumns"/>
where id = #{id}
</update>
update sx_user set gmt_modified=now()
where id = #{item.id}
delete from sx_user where id = #{id}