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 ...
随机推荐
- access手工注入
1.判断数据类型 and exists (select * from msysobjects) >0 and exists (select * from sysobjects) >0 一般 ...
- MouseJack:利用15美元的工具和15行代码控制无线鼠标和键盘
Bastille的研究团队发现了一种针对蓝牙键盘鼠标的攻击,攻击者可以利用漏洞控制你的电脑操作.研究团队将此攻击命名为MouseJack. 七大厂商皆中招 软件工程师马克纽林说:“利用假冒的无线电脑鼠 ...
- cout 计算顺序问题
cout输出流的执行顺序 下面是IBM的一道笔试题 #include <iostream> using namespace std; int fun( ) { cout << ...
- "由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案
先使用如下命令登录到服务器: mstsc /v:{服务器IP} /admin 然后再使用下列方法之一即可. 方法一: 1.单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗口,依次定位 ...
- android onConfigurationChanged讲解
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 相信大家对这个属性已经耳熟能详,如果大家受过转屏的折磨的话! 老规矩,先讲讲官方文档是怎么说的.为什 ...
- HDU 5820 (可持久化线段树)
Problem Lights (HDU 5820) 题目大意 在一个大小为50000*50000的矩形中,有n个路灯.(n<=500000) 询问是否每一对路灯之间存在一条道路,使得长度为|x1 ...
- Dynamic支持CollectionView布局 、 MotionEffects特效 、 BlurImage效果 、 TextKit
1 使用UIDynamicAnimator对集合视图进行布局 1.1 问题 UIKit Dynamic动力模型一个非常有趣的用途就是影响集合视图的布局,可以给集合视图的布局添加各种动力行为,使其产生丰 ...
- Maven打包可执行Jar包方式
第一步:pom.xm中的build标签下加入maven插件配置,打包生成可执行jar包方式Maven中的打包方式更换为 <packaging>jar</packaging> b ...
- iOS学习笔记---c语言学习第七天
结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符 成员名: … 类型说明符 成员名: }: #import <Foundation/Foundation.h& ...
- javabean实现serializable有什么用?为什么数据库持久就Bean实现这个接口?
Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成一组byte,这样日后要用这个对象时候,你就能把这些byte数据恢复出来,并据此重新构建那个对象了 ...