美文网首页
Mybatis写sql的技巧之模板代码

Mybatis写sql的技巧之模板代码

作者: 甘道夫老矣 | 来源:发表于2019-01-02 18:35 被阅读0次
<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->
<!-- //////////////////////////////////// SELECT /////////////////////////////////////////////// -->
<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->

<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->
<!-- //////////////////////////////////// INSERT /////////////////////////////////////////////// -->
<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->

<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->
<!-- //////////////////////////////////// UPDATE /////////////////////////////////////////////// -->
<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->

<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->
<!-- //////////////////////////////////// DELETE /////////////////////////////////////////////// -->
<!-- /////////////////////////////////////////////////////////////////////////////////////////////// -->

<!-- 时间比较 -->
<if test="QDRQQ!=null and QDRQQ!=''">
 AND ht.qdrq &gt; = to_date('${QDRQQ} 00:00:00','yyyy-mm-dd hh24:mi:ss')
</if>
<if test="QDRQZ!=null and QDRQZ!=''">
 AND ht.qdrq &lt; = to_date('${QDRQZ} 23:59:59','yyyy-mm-dd hh24:mi:ss')
</if>

<!-- 单操作~ 新增 -->
<insert id="xxx" parameterType="map">
 INSERT INTO bdc_h (
     fwid
     ,hh
 ) VALUES (
     '${FWID}'
     ,'${HH}'
 )
</insert>

<!-- 单操作~ 删除 -->
<delete id="xxx" parameterType="map">
 DELETE FROM
     jy_spfht ht
 WHERE
     ht.ywid = '${YWID}'
</delete>

<!-- 单操作~ 更新 -->
<update id="xxx" parameterType="map">
 UPDATE bdc_h
     <set>
         <if test="FWID != null and FWID != '' "> h.fwid = #{FWID} , </if>
         <if test="HH != null and HH != '' "> h.hh = #{HH} , </if>
     </set>
 WHERE
     h.fwid = '${FWID}'
</update>

<!-- 单操作~ 查找 -->
<select id="" parameterType="map" resultType="map">
 SELECT
     zt.ztid AS ZTID
     ,zt.ywid AS YWID
 FROM
     jy_zt zt
 <where>
     <if test="ZTID != null and ZTID != '' ">
       AND zt.ztid = '${ZTID}'
     </if>
     <if test="TITLE != null and TITLE != '' ">
       AND zt.title = '${TITLE}'
     </if>
</where>

<!--分页模板-->
<sql id="sql_get_dajsList_where">
     DA_JJMX mx
     LEFT JOIN DA_BDC_KANQ BDC ON mx.YWID = BDC.YWID
 WHERE
     mx.jsr = '${INFO.USER_ID}' or mx.jsr = '101' <!-- 101 超级管理员 -->
 <if test="YJBH != null and YJBH != ''">
     and jj.YJBM like '%${YJBH}%'
 </if>
</sql>
<select id = "DAJS_GETJSLIST" parameterType="map" resultType="map">
 SELECT
     jj.YJBM,
     mx.JJMXID,
     mx.YWID,
     mx.JSR
 FROM
     <include refid="sql_get_dajsList_where"></include>
 ORDER BY jj.YJBM desc, mx.JJID,mx.YWID
</select>
<select id = "DAJS_GETJSLIST_Count" parameterType="map" resultType="map">
 SELECT
     COUNT(1) AS TOTAL
 FROM
     <include refid="sql_get_dajsList_where"></include>
</select>

<!-- 批量操作~查询 -->
<select id="batchSelect" parameterType="map" resultType="map">
<!-- -->    
 SELECT
        p.id,
        p.name
 FROM
        person p
 WHERE
        p.id            
 IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">     
    '${item}'
</foreach>
</select>
<select id="batchSelect_more_than_1000" parameterType="map" resultType="map">
     SELECT
            *
     FROM
            person p
     <where>  
         <if test="list != null and list !='' and list.size() > 0">
             <foreach collection="list" index="index" item="item" open="(" separator=" OR " close=")">     
                    p.id = '${item}'
             </foreach>              
         </if>      
         <if test="a != null and a !=''">
                     p.id = '${a}'       
         </if>
     </where>
</select>

<!-- 批量操作~插入 -->
<!--
 useGeneratedKeys="false"
 如果所操作的表没有设置主键, 则一定要进行本项设置.否则会报: ORA-00933: SQL 命令未正确结束
-->
INSERT INTO jy_spfht (
         ywid,
         zt
     )
 <foreach collection="list" item="item" index="index" separator="UNION ALL">
     (SELECT
     '${item.WQYWID}',
     '${index}'
     FROM DUAL)
 </foreach>
<!-- 批量操作~更新 -->
<update id="batchUpdateSPFHT" parameterType="list">
 <foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
     UPDATE
         jy_spfht
     <set>
         ywid='${item.WQYWID}'||'1'
     </set>
         WHERE
             ywid = '${item.HTID}'
 </foreach>
</update>

<!-- 批量操作~删除 -->
<delete id="batchDeleteSPFHT" parameterType="java.util.List">
 DELETE FROM jy_spfht
 <where>
     <foreach collection="list" index="index" item="item" open="(" separator="or" close=")">
         htid=#{item.HTID}
     </foreach>
 </where>
</delete></pre>

|

相关文章

网友评论

      本文标题:Mybatis写sql的技巧之模板代码

      本文链接:https://www.haomeiwen.com/subject/uzhtrqtx.html