mybatis映射文件模板mapper.xml格式


//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}

猜你喜欢

转载自www.cnblogs.com/youmingDDD/p/10647416.html