zoukankan      html  css  js  c++  java
  • mybatis 批量插入和where条件使用

    <?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="com.dao.IPerformanceResultDao">
            <insert id="addOnlineResult" parameterType="java.util.List">
                BEGIN
                <foreach collection="list" item="item" index="index" separator=";">
                    insert into pts_online_result values(
                        SEQ_PTS_ONLINE_RESULT.nextval,
                        #{item.app_name,jdbcType=VARCHAR},
                        #{item.app_trade,jdbcType=VARCHAR},
                        #{item.action_name,jdbcType=VARCHAR},
                        #{item.con_user,jdbcType=VARCHAR},
                        #{item.press_time,jdbcType=VARCHAR},
                        #{item.avg_time,jdbcType=VARCHAR},
                        #{item.tps,jdbcType=VARCHAR},
                        #{item.succ_action,jdbcType=VARCHAR},
                        #{item.fail_action,jdbcType=VARCHAR},
                        #{item.succ_rate,jdbcType=VARCHAR},
                        #{item.app_cpu_util,jdbcType=VARCHAR},
                        #{item.db_cpu_util,jdbcType=VARCHAR},
                        #{item.scenario_type,jdbcType=VARCHAR},
                        #{item.app_version,jdbcType=VARCHAR},
                        #{item.online_tester,jdbcType=VARCHAR},
                        #{item.online_developer,jdbcType=VARCHAR},
                        #{item.remark,jdbcType=VARCHAR},
                        sysdate,
                        sysdate
                    )
                </foreach>
                ;end;
            </insert>
            
                <insert id="addBatchResult" parameterType="java.util.List">
                BEGIN
                <foreach collection="list" item="item" index="index" separator=";">
                    insert into pts_batch_result values(
                        SEQ_PTS_BATCH_RESULT.nextval,
                        #{item.batch_app_name,jdbcType=VARCHAR},
                        #{item.batch_app_trade,jdbcType=VARCHAR},
                        #{item.perpare_data,jdbcType=VARCHAR},
                        #{item.total_cost,jdbcType=VARCHAR},
                        #{item.succ_record,jdbcType=VARCHAR},
                        #{item.fail_record,jdbcType=VARCHAR},
                        #{item.succ_rate,jdbcType=VARCHAR},
                        #{item.batch_app_cpu_util,jdbcType=VARCHAR},
                        #{item.batch_db_cpu_util,jdbcType=VARCHAR},
                        #{item.scenario_type,jdbcType=VARCHAR},
                        #{item.batch_app_version,jdbcType=VARCHAR},
                        #{item.batch_tester,jdbcType=VARCHAR},
                        #{item.batch_developer,jdbcType=VARCHAR},
                        #{item.remark,jdbcType=VARCHAR},
                        sysdate,
                        sysdate
                    )
                </foreach>
                ;end;
            </insert>
            <select id="queryOnlineResultList" resultType="com.pts.model.PerformanceOnlineResultModel" >
                select t.RESULT_ID
                        ,t.APP_NAME
                        ,t.APP_TRADE
                        ,t.ACTION_NAME
                        ,t.CON_USER
                        ,t.PRESS_TIME
                        ,t.AVG_TIME
                        ,t.TPS
                        ,t.SUCC_ACTION
                        ,t.FAIL_ACTION
                        ,t.SUCC_RATE
                        ,t.APP_CPU_UTIL
                        ,t.DB_CPU_UTIL
                        ,t.SCENARIO_TYPE
                        ,t.APP_VERSION
                        ,t.ONLINE_TESTER
                        ,t.ONLINE_DEVELOPER
                        ,t.REMARK
                        ,to_char(t.CREATE_TIME, 'yyyy-mm-dd hh24:mi:ss')
                          ,to_char(t.UPDATE_TIME, 'yyyy-mm-dd hh24:mi:ss') 
                    from ( select 
                       rownum rn ,p1.*
                       from 
                       (select * from pts.pts_online_result p order by p.result_id desc) p1
                 <where>
                    <if test="perResultModel.app_name != null and perResultModel.app_name != ''">
                        and p1.app_name like concat('%',concat(#{perResultModel.app_name,jdbcType=VARCHAR},'%'))
                    </if> 
                    <if test="perResultModel.scenario_type != null and perResultModel.scenario_type != ''">
                        and p1.scenario_type like concat('%',concat(#{perResultModel.scenario_type,jdbcType=VARCHAR},'%'))
                    </if>        
                     <if test="perResultModel.app_trade != null and perResultModel.app_trade != ''">
                        and p1.app_trade like concat('%',concat(#{perResultModel.app_trade,jdbcType=VARCHAR},'%'))
                    </if>
                    <if test="perResultModel.online_tester != null and perResultModel.online_tester != ''">
                        and p1.online_tester like concat('%',concat(#{perResultModel.online_tester,jdbcType=VARCHAR},'%'))
                    </if>
                    <if test="perResultModel.action_name != null and perResultModel.action_name != ''">
                        and p1.action_name like concat('%',concat(#{perResultModel.action_name,jdbcType=VARCHAR},'%'))
                    </if>
                    <if test="perResultModel.app_version != null and perResultModel.app_version != ''">
                        and p1.app_version like concat('%',concat(#{perResultModel.app_version,jdbcType=VARCHAR},'%'))
                    </if>
                 </where> 
                 ) t 
             where t.rn &lt;= #{rows,jdbcType=NUMERIC}
                   and t.rn &gt; #{start,jdbcType=NUMERIC}
             order by result_id desc
            </select>
            <select id="queryOnlineResultCount" resultType="java.lang.Integer" >
                select count(*)
                 from (select * from pts.pts_online_result p order by p.result_id desc) p1
                 <where>
                    <if test="perResultModel.app_name != null and perResultModel.app_name != ''">
                        and p1.app_name like concat('%',concat(#{perResultModel.app_name,jdbcType=VARCHAR},'%'))
                    </if> 
                    <if test="perResultModel.scenario_type != null and perResultModel.scenario_type != ''">
                        and p1.scenario_type like concat('%',concat(#{perResultModel.scenario_type,jdbcType=VARCHAR},'%'))
                    </if>        
                     <if test="perResultModel.app_trade != null and perResultModel.app_trade != ''">
                        and p1.app_trade like concat('%',concat(#{perResultModel.app_trade,jdbcType=VARCHAR},'%'))
                    </if>
                    <if test="perResultModel.online_tester != null and perResultModel.online_tester != ''">
                        and p1.online_tester like concat('%',concat(#{perResultModel.online_tester,jdbcType=VARCHAR},'%'))
                    </if>
                    <if test="perResultModel.action_name != null and perResultModel.action_name != ''">
                        and p1.action_name like concat('%',concat(#{perResultModel.action_name,jdbcType=VARCHAR},'%'))
                    </if>
                    <if test="perResultModel.app_version != null and perResultModel.app_version != ''">
                        and p1.app_version like concat('%',concat(#{perResultModel.app_version,jdbcType=VARCHAR},'%'))
                    </if>
                 </where> 
            </select>
            <select id="queryOnlineResultDetail" resultType="com.pts.model.PerformanceOnlineResultModel">
                select * from pts.pts_online_result p 
                    where p.result_id=#{result_id,jdbcType=NUMERIC}
            </select>
            <delete id="delOneOnlineResult">
                delete from pts.pts_online_result p 
                    where p.result_id=#{result_id,jdbcType=NUMERIC}            
            </delete>
            <update id="editOnlineResultDetail">
                update pts.pts_online_result p 
                    set P.APP_NAME=#{porModel.app_name,jdbcType=VARCHAR}
                        ,P.APP_TRADE=#{porModel.app_trade,jdbcType=VARCHAR}
                        ,P.ACTION_NAME=#{porModel.action_name,jdbcType=VARCHAR}
                        ,P.CON_USER=#{porModel.con_user,jdbcType=VARCHAR}
                        ,P.PRESS_TIME=#{porModel.press_time,jdbcType=VARCHAR}
                        ,P.AVG_TIME=#{porModel.avg_time,jdbcType=VARCHAR}
                        ,P.TPS=#{porModel.tps,jdbcType=VARCHAR}
                        ,P.SUCC_ACTION=#{porModel.succ_action,jdbcType=VARCHAR}
                        ,P.FAIL_ACTION=#{porModel.fail_action,jdbcType=VARCHAR}
                        ,P.SUCC_RATE=#{porModel.succ_rate,jdbcType=VARCHAR}
                        ,P.APP_CPU_UTIL=#{porModel.app_cpu_util,jdbcType=VARCHAR}
                        ,P.DB_CPU_UTIL=#{porModel.db_cpu_util,jdbcType=VARCHAR}
                        ,P.SCENARIO_TYPE=#{porModel.scenario_type,jdbcType=VARCHAR}
                        ,P.APP_VERSION=#{porModel.app_version,jdbcType=VARCHAR}
                        ,P.ONLINE_TESTER=#{porModel.online_tester,jdbcType=VARCHAR}
                        ,P.ONLINE_DEVELOPER=#{porModel.online_developer,jdbcType=VARCHAR}
                        ,P.REMARK=#{porModel.remark,jdbcType=VARCHAR}
                        ,P.UPDATE_TIME=sysdate
                    where p.result_id=#{result_id,jdbcType=NUMERIC}
            </update>
            <select id="queryBatchResultList" resultType="com.pts.model.PerformanceBatchResultModel">
                select 
                    t.BATCH_RESULT_ID
                    ,t.BATCH_APP_NAME
                    ,t.BATCH_APP_TRADE
                    ,t.PERPARE_DATA
                    ,t.TOTAL_COST
                    ,t.SUCC_RECORD
                    ,t.FAIL_RECORD
                    ,t.SUCC_RATE
                    ,t.BATCH_APP_CPU_UTIL
                    ,t.BATCH_DB_CPU_UTIL
                    ,t.SCENARIO_TYPE
                    ,t.BATCH_APP_VERSION
                    ,t.BATCH_TESTER
                    ,t.BATCH_DEVELOPER
                    ,t.REMARK
                    ,to_char(t.CREATE_TIME, 'yyyy-mm-dd hh24:mi:ss')
                      ,to_char(t.UPDATE_TIME, 'yyyy-mm-dd hh24:mi:ss')
                 from ( 
                    select rownum rn , p1.*from 
                    (select * from pts.pts_batch_result p order by p.batch_result_id desc) p1
                     <where>
                        <if test="perResultModel.batch_app_name != null and perResultModel.batch_app_name != ''">
                            and p1.batch_app_name like concat('%',concat(#{perResultModel.batch_app_name,jdbcType=VARCHAR},'%'))
                        </if>             
                         <if test="perResultModel.batch_app_trade != null and perResultModel.batch_app_trade != ''">
                            and p1.batch_app_trade like concat('%',concat(#{perResultModel.batch_app_trade,jdbcType=VARCHAR},'%'))
                        </if>
                        <if test="perResultModel.batch_tester != null and perResultModel.batch_tester != ''">
                            and p1.batch_batch_tester like concat('%',concat(#{perResultModel.batch_batch_tester,jdbcType=VARCHAR},'%'))
                        </if>
                        <if test="perResultModel.batch_app_version != null and perResultModel.batch_app_version != ''">
                        and p1.batch_app_version like concat('%',concat(#{perResultModel.batch_app_version,jdbcType=VARCHAR},'%'))
                        </if>
                     </where>
                  ) t
                where t.rn &lt;=#{rows,jdbcType=NUMERIC}
                      and t.rn &gt;#{start,jdbcType=NUMERIC}
                order by batch_result_id desc
            </select>
            <select id="queryBatchResultCount" resultType="java.lang.Integer" >
                select count(*)
                 from (select * from pts.pts_batch_result p order by p.batch_result_id desc) p1
                 <where>
                        <if test="perResultModel.batch_app_name != null and perResultModel.batch_app_name != ''">
                            and p1.batch_app_name like concat('%',concat(#{perResultModel.batch_app_name,jdbcType=VARCHAR},'%'))
                        </if>             
                         <if test="perResultModel.batch_app_trade != null and perResultModel.batch_app_trade != ''">
                            and p1.batch_app_trade like concat('%',concat(#{perResultModel.batch_app_trade,jdbcType=VARCHAR},'%'))
                        </if>
                        <if test="perResultModel.batch_tester != null and perResultModel.batch_tester != ''">
                            and p1.batch_tester like concat('%',concat(#{perResultModel.batch_tester,jdbcType=VARCHAR},'%'))
                        </if>
                        <if test="perResultModel.batch_app_version != null and perResultModel.batch_app_version != ''">
                        and p1.batch_app_version like concat('%',concat(#{perResultModel.batch_app_version,jdbcType=VARCHAR},'%'))
                        </if>
                     </where>
            </select>
            <select id="queryBatchResultDetail" resultType="com.pts.model.PerformanceBatchResultModel">
                select * from pts.pts_batch_result p 
                    where p.batch_result_id=#{batch_result_id,jdbcType=NUMERIC}
            </select>
            <delete id="delOneBatchResult">
                delete from pts.pts_batch_result p 
                    where p.batch_result_id=#{batch_result_id,jdbcType=NUMERIC}            
            </delete>
            <update id="editBatchResultDetail">
                update pts.pts_batch_result p 
                    set p.BATCH_APP_NAME=#{pbrModel.batch_app_name,jdbcType=VARCHAR}
                        ,p.BATCH_APP_TRADE=#{pbrModel.batch_app_trade,jdbcType=VARCHAR}
                        ,p.PERPARE_DATA=#{pbrModel.perpare_data,jdbcType=VARCHAR}
                        ,p.TOTAL_COST=#{pbrModel.total_cost,jdbcType=VARCHAR}
                        ,p.SUCC_RECORD=#{pbrModel.succ_record,jdbcType=VARCHAR}
                        ,p.FAIL_RECORD=#{pbrModel.fail_record,jdbcType=VARCHAR}
                        ,p.SUCC_RATE=#{pbrModel.succ_rate,jdbcType=VARCHAR}
                        ,p.BATCH_APP_CPU_UTIL=#{pbrModel.batch_app_cpu_util,jdbcType=VARCHAR}
                        ,p.BATCH_DB_CPU_UTIL=#{pbrModel.batch_db_cpu_util,jdbcType=VARCHAR}
                        ,p.SCENARIO_TYPE=#{pbrModel.scenario_type,jdbcType=VARCHAR}
                        ,p.BATCH_APP_VERSION=#{pbrModel.batch_app_version,jdbcType=VARCHAR}
                        ,p.BATCH_TESTER=#{pbrModel.batch_tester,jdbcType=VARCHAR}
                        ,p.BATCH_DEVELOPER=#{pbrModel.batch_developer,jdbcType=VARCHAR}
                        ,p.REMARK=#{pbrModel.remark,jdbcType=VARCHAR}
                        ,p.UPDATE_TIME=sysdate 
                    where p.batch_result_id=#{batch_result_id,jdbcType=NUMERIC}
            </update>
    </mapper>
  • 相关阅读:
    45_ansible概述、ansible基础 、ad-hoc、批量配置管理
    44_自定义镜像及仓库、持久化存储 、 Docker网络架构
    43_Docker概述、部署Docker、Docker镜像、Docker基本命令
    42_KVM简介、 Virsh管理 、 自定义虚拟机、虚拟设备管理
    41_iptables防火墙 filter表控制 扩展匹配 nat表典型应用
    40_系统审计 服务安全 Linux安全之打补丁
    39_加密与解密 AIDE入侵检测系统 扫描与抓包
    38_Linux基本防护 用户切换与提权 SSH访问控制 SELinux安全 、SSH访问控制 SELinux安全
    hdu5530
    bzoj3456
  • 原文地址:https://www.cnblogs.com/anruy/p/5882492.html
Copyright © 2011-2022 走看看