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 ...
随机推荐
- JS中 window的用法
1.window.location.reload();作用是刷新当前页面
- python中的namespace
python中的名称空间是名称(标识符)到对象的映射. 具体来说,python为模块.函数.类.对象保存一个字典(__dict__),里面就是重名称到对象的映射. 可以参看下面python程序的输出: ...
- 如何通过 GT 快速开始性能测试?
http://gt.tencent.com/docs/a/2.1/GTAndroidQuickStart.pdf Summary 安装 GT(GT.apk)后,不需要连接 PC 和在被测应用中插入代码 ...
- CPP&MATLAB实现拉格朗日插值法
开始学习MATLAB(R和Python先放一放...),老师推荐一本书,看完基础就是各种算法...首先是各种插值.先说拉格朗日插值法,这原理楼主完全不懂的,查的维基百科,好久才看懂.那里讲的很详细,这 ...
- 作业6 分析项目的NABCD和项目的产品Backlog
项目scrum:邵家文 NABCD模型分析 N(Need 需求)根据采访用户下面可以得出用户的基本需求:1.小孩说:我想要做适合自己能力的四则运算2.小孩说:我想这个四则运算软件里面的题目越做越提高自 ...
- RPi 2B USB 远程桌面
/******************************************************************** * RPi 2B USB 远程桌面 * 说明: * 用作废的 ...
- LeetCode Find the Duplicate Number 找重复出现的数(技巧)
题意: 有一个含有n+1个元素的数组,元素值是在1-n之间的整数,请找出其中出现超过1次的数.(保证仅有1个出现次数是超过1的数) 思路: 方法一:O(nlogn).根据鸽笼原理及题意,每次如果< ...
- tensorflow0.8.0 安装配置
参考官网:https://www.tensorflow.org/ Ubuntu15.10 + Eclipse Mars.2(4.5.2)官网最新 + Anaconda3-4.0.0 + Pydev4 ...
- java生成随机大数据文件
package iie.udps.test; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutput ...
- 使用批处理文件,自动设置计算机IP地址
WIN7批处理设置IP地址不成功,显示“The filename, directory name, or volume label syntax is incorrect.”错误, 解决方法:将“本地 ...