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 <= #{rows,jdbcType=NUMERIC}
and t.rn > #{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 <=#{rows,jdbcType=NUMERIC}
and t.rn >#{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>
mybatis 批量插入和where条件使用的更多相关文章
- 160421、MyBatis批量插入数据
在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些 ...
- MyBatis批量插入数据(MySql)
由于项目需要生成多条数据,并保存到数据库当中,在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,项目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,应 ...
- Mybatis 批量插入
一.首先对于批量数据的插入有两种解决方案(下面内容只讨论和Mysql交互的情况) 1)for循环调用Dao中的单条插入方法 2)传一个List<Object>参数,使用Mybatis的批量 ...
- mybatis批量插入数据到oracle
mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“ 错误解决方法 oracle批量插入使用 insert a ...
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...
- 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束
Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的 ...
- mybatis批量插入oracle时报错:unique constraint (table name) violated
mybatis批量插入oracle时报错:unique constraint (table name) violated,是因为插入的集合中有两条相同唯一约束的数据.
- Mybatis 批量插入数据
--mybatis 批量插入数据 --1.Oracle(需要测试下是否支持MySQL) < insert id ="insertBatch" parameterType=&q ...
- 【mybatis批量插入】
mybatis批量插入操作: MySQL:1.INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,'张三'),(2,'李四') 2.INS ...
随机推荐
- SVG 2D入门7 - 重用与引用
前面介绍了很多的图形元素,如果很多图形本身是一样的,需要每次都去定义一个新的么?我们能否共用一些图形呢?这是这节的重点 - SVG元素的重用. 组合 - g元素 g元素是一种容器,它组合一组 ...
- C# 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配
在dllimport中加入CallingConvention参数就行了,[DllImport(PCAP_DLL, CharSet = CharSet.Auto, CallingConvention = ...
- php大力力 [012节]PHP连接mySQL数据库
php大力力 [012节]PHP连接mySQL数据库 1.用简单的php测试代码,而不是直接进入前端页面,越简单越好 2.在=号前后,不要写空格,万一写了中文空格,排除错误很麻烦. 3.我在mysql ...
- BZOJ 1951 古代猪文
快速幂+枚举质因数+欧拉定理+lucas定理+CRT. 注意两点: 1.if (n<m) C(n,m)=0. 2.这里0^0时应该return 0. #include<iostream&g ...
- linux命令:pwd
1.介绍: pwd可以查看目录的完整路径,全称是Print Working Directory,. 2.命令格式 pwd [选项] 3.命令作用 查看目录的完整路径 4.常用选项 -L 当路径为链接路 ...
- Divisors_组合数因子个数
Description Your task in this problem is to determine the number of divisors of Cnk. Just for fun -- ...
- inno setup教程解释脚本
inno setup教程解释脚本 2007-04-08 21:31:36| 分类: 科技-> Inno Setu | 标签:inno |举报 |字号 订阅 下载LOFTER客户端 ...
- Asp.net操作Excel----NPOI!!!!1
前言 Asp.net操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使 用NPOI能够帮助开发者在没有安装微软Office的情况下读写Off ...
- magento additional & details 分解开来
<?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?& ...
- VC++编程中常用的字符串转换函数
VC++编程中经常遇到不同编码编码的字符串之间需要转换的情况,以下简单提供几个不同编码字符串之间的转换函数: ANSI 字符串和Unicode字符串之间的转换 //Convert wide char ...