Mybatis--xml语句模版

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xxx">

<!-- 表字段  -->
<sql id="addFields">
  id,
  name,
  money,
  start_time,
  end_time,
  dscription,
  is_delete
</sql>
<!-- 表字段映射 --> <sql id="allFields"> id, name, create_time as createTime, is_delete as isDelete </sql>

<!-- 表名 --> <sql id="table"> user </sql> <!-- 查询条件 --> <sql id="condition"> <where> 1=1 <if test="id != null" > and id = #{id} </if> <if test="name != null and name != ''" > and name = #{name} </if> <if test="createTime != null" > and create_time = #{createTime} </if> <if test="isDelete != null" > and is_delete = #{isDelete} </if> </where> </sql> <!-- 模糊查询条件 --> <sql id="vagueCondition"> <where> 1=1 <if test="id != null" > and id like "%"#{id}"%" </if> <if test="name != null and name != ''" > <!-- 查询拼接 第二种格式 '% ${name} %' --> and name like "%"#{name}"%" </if> <if test="createTime != null" > and create_time like "%"#{createTime}"%" </if> <if test="isDelete != null" > and is_delete like "%"#{isDelete}"%" </if> </where> </sql> <!-- 插入全字段 --> <insert id="add" parameterType="xxx"> insert into <include refid="table" />  (<include refid="addFields"/>) values (#{id}, #{name}, #{createTime}, #{isDelete}) </insert> <!-- 动态插入字段 --> <insert id="addDynamic" parameterType="xxx"> insert into <include refid="table" /> <trim prefix="(" suffix=")" suffixOverrides=","> <!-- test后是实体类字段 --> <if test="id != null"> id, </if> <if test="name != null"> name, </if> <if test="createTime != null"> create_time, </if> <if test="isDelete != null"> is_delete, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> #{id}, </if> <if test="name != null"> #{name}, </if> <if test="createTime != null"> #{createTime}, </if> <if test="isDelete != null"> #{isDelete}, </if> </trim> </insert>

<!-- 批量插入 -->
<insert id="addInBatch" parameterType="com.hy.pojo.dal.dataobject.UserDO">
        insert into
      <include refid="table" />
      (<include refid="addFields"/>) values
        <foreach collection="collection" item="item" index="index" separator=",">
            (
                #{item.id},
                #{item.name},
                #{item.money},
                #{item.startTime},
                #{item.endTime},
                #{item.dscription},
                #{item.isDelete}
            )
        </foreach>
</insert> 
<!-- 删除 根据ID --> <delete id="delete" parameterType="java.lang.Long"> delete from <include refid="table" /> where id = #{id} </delete> <!-- 更新 根据ID--> <update id="update" parameterType="xxx"> update <include refid="table" /> <set> <if test="name != null"> name = #{name}, </if> <if test="createTime != null"> create_time = #{createTime}, </if> <if test="isDelete != null"> is_delete = #{isDelete}, </if> </set> where id = #{id} </update> <!-- 查询 根据ID --> <select id="get" parameterType="java.lang.Long" resultType="xxx"> select <include refid="allFields" /> from <include refid="table" /> where id = #{id} </select>

 <!-- 查询 多条件 -->
<select id="getByMap" resultType="com.hy.pojo.dal.dataobject.UserDO" parameterType="Map" >
        select <include refid="allFields"/>
        from
      <include refid="table" />

        <include refid="condition"/>
</select>

<!-- 查询全部-->
<select id="gets" resultType="xxx">
select
<include refid="allFields" />
from
<include refid="table" />
</select>

<!-- 条件分页查询 --> <select id="page" parameterType="Map" resultType="xxx"> select <include refid="allFields" /> from <include refid="table" /> <include refid="condition" /> limit #{pageSize} offset #{start} </select> <!-- 条件分页模糊查询 --> <select id="page" parameterType="xxx" resultType="xxx"> select <include refid="allFields" /> from <include refid="table" /> <include refid="vagueCondition" /> limit #{pageSize} offset #{start} </select>
<!-- 总记录数-->
<select id="count" resultType="long">
        select count(*) from <include refid="table" />
</select>
<!-- 动态查询记录数--> <select id="getCount" parameterType="xxx" resultType="Integer"> select count(1) from <include refid="table" /> <include refid="condition" /> </select> </mapper>

 

posted @ 2020-04-22 17:48  sky-boke  阅读(501)  评论(0)    收藏  举报