• mybatis


    1.id in ids (数组)

     1 SELECT
     2    *
     3   FROM
     4    `cw_alarm_info`
     5   <where>
     6    <if test="beginTime != null and beginTime!= '' and endTime != null and endTime != ''">
     7     createTime BETWEEN #{beginTime} AND #{endTime}
     8    </if>
     9    <if test="minSim != null and minSim != '' and maxSim != null and maxSim != ''">
    10     AND similiar BETWEEN #{minSim} AND #{maxSim}
    11    </if>
    12    <if test="cameraId != null and cameraId != ''">
    13     AND cameraId = #{cameraId}
    14    </if>
    15    <if test="libraryIds != null and libraryIds.size > 0 ">
    16     AND libraryId in
    17     <foreach collection="libraryIds" index="index" item="item" open="(" separator="," close=")">
    18                 #{item}
    19              </foreach>
    20             </if>
    21    <if test="controllerNO != null and controllerNO != ''">
    22     AND controllerNO = #{controllerNO}
    23    </if>
    24   </where>
    View Code

      

    2.特殊字符  >=  <=

    1 >=      &gt;=
    2 <=      &lt;=
    View Code

    3.批量新增 

     1 <!-- schedule 车辆感知离开 批量新增 -->
     2     <insert id ="insertsLeave" parameterType="java.util.List" >
     3             <selectKey resultType ="java.lang.Integer" keyProperty= "id"
     4                  order= "AFTER">
     5                 SELECT LAST_INSERT_ID()
     6             </selectKey>
     7            INSERT INTO cw_vehicle_leave (
     8     tollgateID,
     9     cameraId,
    10     villageCode,
    11     plateNumber,
    12     inOutTime,
    13     platePicUrl,
    14     plateNoPicUrl,
    15     channelName,
    16     days,
    17     status
    18    )
    19    VALUES
    20             <foreach collection ="list" item="item" index= "index" separator =",">
    21                 (
    22                 #{item.tollgateID},
    23                 #{item.cameraId},
    24                 #{item.villageCode},
    25                 #{item.plateNumber},
    26                 #{item.inOutTime},
    27                 #{item.platePicUrl},
    28                 #{item.plateNoPicUrl},
    29                 #{item.channelName},
    30                 1,
    31                 0
    32                 )
    33             </foreach>
    34      </insert>
    View Code

     批量修改

         <update id="discoveryUpdate" parameterType="java.util.List">
             <foreach collection="list" item="item" separator=";">
                 UPDATE cw_vehicle_discovery set
                    updateTime = NOW(),
                     days = 0,
                    inOutTime = #{item.inOutTime}
                WHERE id = #{item.id}
                </foreach>    
         </update>
    View Code

    4.模糊查询

     1 <select id="pages"
     2         parameterType="cn.cloudwalk.isc.data.resource.common.model.Unit"
     3         resultType="cn.cloudwalk.isc.data.resource.common.model.Unit">
     4         SELECT
     5             *
     6         FROM
     7             cw_base_unit
     8         <where>
     9             <if test="buildingNo != null and buildingNo != ''">
    10                 buildingNo = #{buildingNo}
    11             </if>
    12             <if test="unitName != null and unitName != ''">
    13                 AND unitName LIKE CONCAT('%',#{unitName},'%')
    14             </if>
    15         </where>
    16     </select>
    View Code
     

    5.今天在写mapper文件时遇到integer类型参数时判断不为空

    如下

    View Code

    当topSeq=0时,if语句没有执行。究其原因,原来mybatis默认将integer=0的参数等于‘’空串。

    6.int参数 String参数  list参数 判断不为空

    View Code

     7.单个update

    注:一个更简单方法 <set></set> 标签可以过滤","

    进行动态SQL拼接,如下,使用trim就是为了删掉最后字段的“,”。
    主要不用单独写SET了,因为set被包含在trim中了:

    <update id="updateOne"  parameterType="com.inspur.search.data.EntityRelation">
     UPDATE ENTITY_RELATION
     <trim prefix="set" suffixOverrides=",">
      <if test="srcId!=null">SRC_ID=#{srcId},</if>
      <if test="srcType!=null">SRC_TYPE=#{srcType},</if>
      <if test="destId!=null">DEST_ID=#{destId},</if>
      <if test="destType!=null">DEST_TYPE=#{destType},</if>
      <if test="relType!=null">REL_TYPE=#{relType},</if>
      <if test="status!=null">STATUS=#{status},</if>
      <if test="snId!=null">SN_ID=#{snId},</if>
     </trim>
     WHERE id=#{id}
    </update>
    View Code

     7.Date 空判定

    mybatis 3.0  Date只能判断为 != null,    != '' 空字符串 会报错

  • 相关阅读:
    51 数据中重复的数字
    64 数据流中的中位数
    79. Word Search
    93. Restore IP Addresses
    547. Friend Circles
    Epplus Excel 导入 MSSQL 数据库
    用来更新服务的bat 脚本
    ASP.Net MVC 引用动态 js 脚本
    8、结构的构造器应该显式调用!!!(坑)
    Task 线程重用导致等待!
  • 原文地址:https://www.cnblogs.com/jinnian18sui/p/10384829.html
Copyright © 2020-2023  润新知