Mybatis语法笔记

1.条件查询
<
sql id="queryColumn"> id, name name </sql> <select id="findList" resultType="packageName"> SELECT <include refid="queryColumn"></include> FROM T_TABLE A WHERE 1 = 1 <if test="name != null and name != '' "> AND (A.NAME like '%${name}' or A.NAME like '${name}%' or A.NAME like '%${name}%') </if> ORDER BY A.CREATE_TIME DESC </select>
2.函数查询 
<
select id="queryAreaData" resultType="packageName"> SELECT
      A.ID code,
      A.NAME name,  (SELECT group_concat(CONCAT('{"code":"',t.id,'",'),CONCAT('"name":"',t.NAME,'"}') SEPARATOR '/') FROM (SELECT b.PARENT_ID,b.id,b.NAME FROM ADS_ADDRESS b where b.level_type =3 GROUP BY b.id,b.NAME)t where t.PARENT_ID=a.id) chird FROM
      ADS_ADDRESS A WHERE
      A.LEVEL_TYPE =2 GROUP BY
      A.ID,A.NAME
</select>
3.循环查询
<
select id="list" resultType="packageName"> SELECT ID id, NAME name FROM T_TABLE A  WHERE
       A.ID IN  
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">   #{item} </foreach> </select>
4.循环插入 
<
insert id="insertList"> INSERT INTO T_TABLE( ID, NAME )VALUES <foreach collection="list" item="item" index="index" open="(" separator="),(" close=")"> #{item.id}, #{item.name} </foreach> </insert>
5.Msp参数判断查询

  Map<String, Integer> map = new HashMap<String, Integer>();
  map.put("pageIndex", pageIndex);
  map.put("pageSize", pageSize);

<select id="queryBouncePage" parameterType="java.util.Map" resultType="JavaBean">
        SELECT 
            * 
        FROM 
            T_TABLE
        WHERE ID IN
        <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">  
            #{item}  
        </foreach>
        <if test="_parameter.containsKey('pageIndex') and _parameter.containsKey('pageSize')">
            limit #{pageIndex}, #{pageSize}
        </if>
</select>
6.属性为对象查询
public class StoreInfoDto {
    private int id;
    private List<StoreImgDto> imgDtos;// 店铺图片
    private List<StoreLabelDto> labelDtos;// 店铺标签
    private List<StoreReviewDto> reviewDtos;// 店铺评论
    private List<StoreErrorDto> errorDtos;// 顾客报错信息
    private ProvinceDto provinceDto;//
    private CityDto cityDto;//
    private AreaDto areaDto;//
    private String merchantNo;// 商户编号
    private String code;// 编码CODE
    private String name;// 店名
    private String alias;// 店别名
    private String address;// 店铺地址
    private String addressDetail;// 店铺地址详情

    .......

    get、set.......
}

  

<sql id="storeInfoColumn">
        A.ID,
        A.MERCHANT_NO,
        A.CODE,
        A.NAME,
        A.ALIAS,
        A.ADDRESS,
        A.ADDRESS_DETAIL,
        A.NEAR_AREA,
        A.LONGITUDE,
        A.LATITUDE,
        A.STATUS,
        A.PHONE,
        A.PHONE_STANDBY,
        A.MOBILE,
        A.MOBILE_STANDBY,
        A.OFFICE_HOURS,
        A.OFFICE_HOURS_PERIODS,
        A.OFFICE_HOURS_STANDBY,
        A.OFFICE_HOURS_PERIODS_STANDBY,
        A.REVIEW_TIMES,
        A.EFFECT_SCORE,
        A.ENVIRONMENT_SCORE,
        A.SERVER_SCORE,
        A.FAVORITES_TIMES,
        A.REMARK,
        A.CREATE_BY,
        A.CREATE_TIME,
        A.UPDATE_BY,
        A.UPDATE_TIME 
    </sql>
    
    <sql id="storeImgColumn">
        B.ID B_ID,
        B.STORE_ID B_STORE_ID,
        B.TITLE B_TITLE,
        B.SOURCE B_SOURCE,
        B.LARGE B_LARGE,
        B.MEDIUM B_MEDIUM,
        B.THUMBNAIL B_THUMBNAIL,
        B.IMAGE_PATH B_IMAGE_PATH,
        B.TYPE B_TYPE,
        B.STATUS B_STATUS,
        B.ORDER_BY B_ORDER_BY,
        B.CREATE_BY B_CREATE_BY,
        B.CREATE_TIME B_CREATE_TIME,
        B.UPDATE_BY B_UPDATE_BY,
        B.UPDATE_TIME B_UPDATE_TIME
    </sql>

    <sql id="storeLableColumn">
        C.ID C_ID,
        C.STORE_ID C_STORE_ID,
        C.NAME C_NAME,
        C.CODE C_CODE,
        C.LARGE C_LARGE,
        C.ORDER_BY C_ORDER_BY,
        C.CREATE_BY C_CREATE_BY,
        C.CREATE_TIME C_CREATE_TIME,
        C.UPDATE_BY C_UPDATE_BY,
        C.UPDATE_TIME C_UPDATE_TIME
    </sql>

    <sql id="storeReviewColumn">
        D.ID D_ID,
        D.USER_ID D_USER_ID,
        D.STORE_ID D_STORE_ID,
        D.CONTENT D_CONTENT,
        D.IP D_IP,
        D.IS_SHOW D_IS_SHOW,
        D.STATUS D_STATUS,
        D.SCORE D_SCORE,
        D.EFFECT_SCORE D_EFFECT_SCORE,
        D.ENVIRONMENT_SCORE D_ENVIRONMENT_SCORE,
        D.SERVER_SCORE D_SERVER_SCORE,
        D.HIT_TIMES D_HIT_TIMES,
        D.REMARKS D_REMARKS,
        D.CREATE_BY D_CREATE_BY,
        D.CREATE_TIME D_CREATE_TIME,
        D.UPDATE_BY D_UPDATE_BY,
        D.UPDATE_TIME D_UPDATE_TIME
    </sql>
    
    <sql id="storeErrorColumn">
        E.ID E_ID,
        E.USER_ID E_USER_ID,
        E.STORE_ID E_STORE_ID,
        E.ERROR_TYPE_CODE E_ERROR_TYPE_CODE,
        E.REPETITION_STORE_ID E_REPETITION_STORE_ID,
        E.NEW_LONGITUDE E_NEW_LONGITUDE,
        E.NEW_LATITUDE E_NEW_LATITUDE,
        E.AFFIRM_STORE_ID E_AFFIRM_STORE_ID,
        E.CREATE_BY E_CREATE_BY,
        E.CREATE_TIME E_CREATE_TIME,
        E.UPDATE_BY E_UPDATE_BY,
        E.UPDATE_TIME E_UPDATE_TIME
    </sql>
    
    <sql id="storeReviewImgColumn">
        F.ID F_ID,
        F.STORE_ID F_STORE_ID,
        F.STORE_REVIEW_ID F_STORE_REVIEW_ID,
        F.SOURCE F_SOURCE,
        F.LARGE F_LARGE,
        F.MEDIUM F_MEDIUM,
        F.THUMBNAIL F_THUMBNAIL,
        F.IMAGE_PATH F_IMAGE_PATH,
        F.HIT_TIMES F_HIT_TIMES,
        F.ORDER_BY F_ORDER_BY,
        F.CREATE_BY F_CREATE_BY,
        F.CREATE_TIME F_CREATE_TIME,
        F.UPDATE_BY F_UPDATE_BY,
        F.UPDATE_TIME F_UPDATE_TIME
    </sql>
    
    <sql id="provinceColumn">
        G.ID G_ID,
        G.NAME G_NAME
    </sql>
    
    <sql id="cityColumn">
        H.ID H_ID,
        H.PROVINCE_ID H_PROVINCE_ID,
        H.NAME H_NAME
    </sql>
    
    <sql id="areaColumn">
        I.ID I_ID,
        I.CITY_ID I_CITY_ID,
        I.NAME I_NAME
    </sql>
    
    <sql id="queryColumn">
        <include refid="storeInfoColumn"></include>,
        <include refid="storeImgColumn"></include>,
        <include refid="storeLableColumn"></include>,
        <include refid="storeReviewColumn"></include>,
        <include refid="storeErrorColumn"></include>,
        <include refid="storeReviewImgColumn"></include>,
        <include refid="provinceColumn"></include>,
        <include refid="cityColumn"></include>,
        <include refid="areaColumn"></include>
    </sql>
    
    <select id="queryStoreList" resultMap="storeInfoMap">
        SELECT
            <include refid="queryColumn"></include>
        FROM
              lrm_store_info a 
          LEFT JOIN lrm_store_image b 
            ON a.id = b.store_id 
          LEFT JOIN lrm_store_label c 
            ON a.id = c.store_id 
          LEFT JOIN lrm_store_review d 
            ON a.id = d.store_id 
          LEFT JOIN lrm_store_error e 
            ON a.id = e.store_id 
          LEFT JOIN lrm_store_review_image f 
            ON d.id = f.store_review_id 
        LEFT JOIN lrm_dict_provinces g 
            ON a.privince_id = g.id 
        LEFT JOIN lrm_dict_citys h 
            ON a.city_id = h.id 
        LEFT JOIN lrm_dict_areas i 
            ON a.area_id = i.id 
    </select>

    <resultMap id="storeInfoMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.store.entity.StoreInfoDto">
        <id column="id" property="id" />
        <result column="merchant_no" property="merchantNo" />
        <result column="code" property="code" />
        <result column="name" property="name" />
        <result column="alias" property="alias" />
        <result column="address" property="address" />
        <result column="address_detail" property="addressDetail" />
        <result column="near_area" property="nearArea" />
        <result column="longitude" property="longitude" />
        <result column="latitude" property="latitude" />
        <result column="status" property="status" />
        <result column="phone" property="phone" />
        <result column="phone_standby" property="phoneStandby" />
        <result column="mobile" property="mobile" />
        <result column="mobile_standby" property="mobileStandby" />
        <result column="office_hours" property="officeHours" />
        <result column="office_hours_periods" property="officeHoursPeriods" />
        <result column="office_hours_standby" property="officeHoursStandby" />
        <result column="office_hours_periods_standby" property="officeHoursPeriodsStandby" />
        <result column="review_times" property="reviewTimes" />
        <result column="effect_score" property="effectScore" />
        <result column="environment_score" property="environmentScore" />
        <result column="server_score" property="serverScore" />
        <result column="favorites_times" property="favoritesTimes" />
        <result column="remark" property="remark" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />

        <association property="provinceDto" resultMap="provinceMap" columnPrefix="G_" />
        <association property="cityDto" resultMap="cityMap" columnPrefix="H_"/>
        <association property="areaDto" resultMap="areaMap" columnPrefix="I_"/>
        
        <collection property="imgDtos" resultMap="storeImgMap" columnPrefix="B_"/>
        <collection property="labelDtos" resultMap="storeLabelMap" columnPrefix="C_"/>
        <collection property="reviewDtos" resultMap="storeReviewMap" columnPrefix="D_"/>
        <collection property="errorDtos" resultMap="storeErrorMap" columnPrefix="E_"/>
    </resultMap>
    

    <resultMap id="storeImgMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.store.entity.StoreImgDto">
        <id column="id" property="id" />
        <result column="store_id" property="storeId" />
        <result column="title" property="title" />
        <result column="source" property="source" />
        <result column="large" property="large" />
        <result column="medium" property="medium" />
        <result column="thumbnail" property="thumbnail" />
        <result column="image_path" property="imagePath" />
        <result column="type" property="type" />
        <result column="status" property="status" />
        <result column="order_by" property="orderBy" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
    </resultMap>

    <resultMap id="storeLabelMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.store.entity.StoreLabelDto">
        <id column="id" property="id" />
        <result column="store_id" property="storeId" />
        <result column="name" property="name" />
        <result column="code" property="code" />
        <result column="large" property="large" />
        <result column="order_by" property="orderBy" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
    </resultMap>

    <resultMap id="storeReviewMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.store.entity.StoreReviewDto">
        <id column="id" property="id" />
        <result column="user_id" property="userId" />
        <result column="store_id" property="storeId" />
        <result column="content" property="content" />
        <result column="ip" property="ip" />
        <result column="is_show" property="isShow" />
        <result column="status" property="status" />
        <result column="score" property="score" />
        <result column="effect_score" property="effectScore" />
        <result column="environment_score" property="environmentScore" />
        <result column="server_score" property="serverScore" />
        <result column="hit_times" property="hitTimes" />
        <result column="remarks" property="remarks" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
        
        <collection property="reviewImgDtos" resultMap="storeReviewImgMap" columnPrefix="F_"/>
    </resultMap>

    <resultMap id="storeReviewImgMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.store.entity.StoreReviewImgDto">
        <id column="id" property="id" />
        <result column="store_id" property="storeId" />
        <result column="store_review_id" property="storeReviewId" />
        <result column="source" property="source" />
        <result column="large" property="large" />
        <result column="medium" property="medium" />
        <result column="thumbnail" property="thumbnail" />
        <result column="image_path" property="imagePath" />
        <result column="hit_times" property="hitTimes" />
        <result column="order_by" property="orderBy" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
    </resultMap>

    <resultMap id="storeErrorMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.store.entity.StoreErrorDto">
        <id column="id" property="id" />
        <result column="user_id" property="userId" />
        <result column="store_id" property="storeId" />
        <result column="source" property="source" />
        <result column="error_type_code" property="errorTypeCode" />
        <result column="repetition_store_id" property="repetitionStoreId" />
        <result column="new_longitude" property="newLongitude" />
        <result column="new_latitude" property="newLatitude" />
        <result column="affirm_store_id" property="affirmStoreId" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
    </resultMap>

    <resultMap id="provinceMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.dict.ProvinceDto">
        <id column="id" property="id" />
        <result column="name" property="name" />
    </resultMap>

    <resultMap id="cityMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.dict.CityDto">
        <id column="id" property="id" />
        <result column="province_id" property="provinceId" />
        <result column="name" property="name" />
    </resultMap>
    
    <resultMap id="areaMap" type="cn.ibaiyou.bf.modules.lrm.wechat.common.dict.AreaDto">
        <id column="id" property="id" />
        <result column="city_id" property="cityId" />
        <result column="name" property="name" />
    </resultMap>
7.属性为对象插入
<
insert id="insertEpaper"> INSERT INTO T_TABLE( ID, USER_ID, NAME )VALUES <foreach collection="list" item="item" index="index" open="(" separator="),(" close=")"> #{item.id}, #{item.userDto.id}, #{item.name} </foreach> </insert>
8.批量修改
jdbc:mysql://127.0.0.1:3306/database?allowMultiQueries=true

<update id="updateList">
    <foreach collection="list" item="item" index="index" open="" close="" separator=";">  
        UPDATE 
            tableName  
        SET
            name = #{item.name},
            update_time = DATE_FORMAT(#{item.updateTime},'%Y-%c-%d %H:%i:%s')
        WHERE
            id = #{item.id}
    </foreach>  
</update>

9.批量删除
<delete id="deleteList" parameterType="String">
   Delete from t_base_user_role WHERE user_id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.userId}
</foreach>
</delete>
 
原文地址:https://www.cnblogs.com/linying/p/5132310.html