JAVA 使用原生jdbc批量添加,表被锁住问题
今天用jdbc批量添加数据的时候遇到了一个问题,当数据添加成功过后,再想对该表进行操作发现表被锁住了,检查了下代码发现事务提交了呀!!!!!!!!!!!!
去网上查了大半天的资料才发现问题,在connection commit过后需要加上 connection.setAutoCommit(true);
下面是示例代码
log.info("插入语句" + sql);
//获取结果集
connection = JdbcUtils.getConnection(database.getMysqlDriverName(), database.getMysqlUrl(), database.getMysqlUserName(), database.getMysqlPassWord());
if (connection != null) {
//设置为false,事务不会自动提交
connection.setAutoCommit(false);
try {
ps = connection.prepareStatement(sql);
} catch (Exception e) {
log.error("--------------------sql语句错误----------------------------");
}
try {
for (int i = 0; i < tsImAnalysisList.size(); i++) {
ps.setString(1, tsImAnalysisList.get(i).getSessionNum());
ps.setObject(2, tsImAnalysisList.get(i).getCreateTime());
ps.setString(3, tsImAnalysisList.get(i).getType());
ps.setString(4, tsImAnalysisList.get(i).getSponsorDept());
ps.setString(5, tsImAnalysisList.get(i).getFirstLevelDept());
ps.setString(6, tsImAnalysisList.get(i).getTwoLevelDept());
ps.setString(7, tsImAnalysisList.get(i).getThreeLevelDept());
ps.setString(8, tsImAnalysisList.get(i).getSponsorName());
ps.setLong(9, tsImAnalysisList.get(i).getSponsorUserId());
ps.setLong(10, tsImAnalysisList.get(i).getReplyUserId());
ps.setString(11, tsImAnalysisList.get(i).getReplyUserName());
ps.setLong(12, tsImAnalysisList.get(i).getFirstResponseTime());
ps.setLong(13, tsImAnalysisList.get(i).getTotalDuration());
ps.setObject(14, LocalDateTime.now());
ps.addBatch();
}
//执行批处理
ps.executeBatch();
//提交
connection.commit();
connection.setAutoCommit(true);
ps.clearBatch();
if (ps.executeUpdate() > 0) {
return 1;
}
} catch (Exception e) {
//回滚事务
// connection.rollback();
log.error("集合数据赋值异常" + e);
}
//关闭连接
//关闭连接
JdbcUtils.colseResource(connection, ps, rs);
JAVA 使用原生jdbc批量添加,表被锁住问题的更多相关文章
- java操作elasticsearch实现批量添加数据(bulk)
java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...
- Oracle查看哪些表被锁住了
--查看哪些表被锁住了select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_object ...
- 解决oracle 表被锁住问题
想修改Oracle下的某一张表,提示 "资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效" 看上去是锁住了. 用系统管理员登录进数据库,然后 SELECT sid, ...
- java 学习原生jdbc
public class App { public static void main( String[] args ) { //JDBC驱动 String driverName = "com ...
- java类型与jdbc类型对应表
java.sql.Types 值 Java 类型 IBM DB2 Oracle Sybase SQL Informix IBM Content Manager BIGINT java.lang ...
- MySQL批量添加表字段
ALTER TABLE custom ADD contacts2 VARCHAR(50) NOT NULL DEFAULT '' COMMENT '客户联系人2',ADD phone2 VARCHAR ...
- Oracle update或alter表被锁住的问题
\\ 查询被锁的对象.来源.sid和serial select object_name, machine, s.sid, s.serial# from v$locked_object l, dba_o ...
- 【JAVA - SSM】之MyBatis与原生JDBC、Hibernate访问数据库的比较
首先来看一下原生JDBC访问数据库的代码: public static void main(String[] args) { // 数据库连接 Connection connection = null ...
- java中使用JDBC的preparedStatement批处理数据的添加
在项目中我们偶尔可能会遇到批量向数据库中导入数据,如果批处理的情况较多的情况下可以使用spring batch,如果只是一个导入功能的话可以考虑使用jdbc的preparedStatement处理. ...
随机推荐
- ubuntu 18.04使用sysbench测试MySQL性能
首先下载安装sysbench: sudo apt-get install sysbench -y 查看一下sysbench版本是多少: zifeiy@zifeiy-S1-Series:~$ sysbe ...
- line-height超出隐藏显示的行数和垂直居中
line-height是css样式里设置行高的方法,在div中有overflow:hidden,可以隐藏超出div的内容,配合行高和div的高,可以设置该div里可以显示几行内容,div可以容纳几个行 ...
- Traking-Learning-Detection TLD经典论文部分翻译
摘要 本文研究视频流中未知目标的长期跟踪问题.在第一帧,通过选定位置和大小定义跟踪目标.在接下来的每一帧中,跟踪任务是确定目标的位置和大小或者说明目标不存在.我们提出了一种新颖的跟踪框架(TLD),明 ...
- git 获取线上代码并合并到本地
//查询当前远程的版本 $ git remote -v //获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch]) $ git fetch origin ...
- Image Perimeters
Description 给出一张由"x"和"."组成的矩阵.每个"x"可以向上下左右及两个斜对角进行连通,请问由某个点开始的"x& ...
- TCP/IP学习笔记9--以太网之基本概念1: 分类,连接方式
时间是变化的财富.时钟模仿它,却只有变化而无财富. -- 泰戈尔 以太网(Ethernet)一词源于Ether(以太), 是介质的意思.在爱因斯坦哥们提出量子力学之前,人们普遍认为宇宙空间充满以太,并 ...
- [转帖]TPC-C解析系列04_TPC-C基准测试之数据库事务引擎的挑战
TPC-C解析系列04_TPC-C基准测试之数据库事务引擎的挑战 http://www.itpub.net/2019/10/08/3331/ OceanBase这次TPC-C测试与榜单上Oracl ...
- [SQL] - 报表查询效率优化
背景 系统将数据对象JSON序列化后存放到数据库字段中.Report 模块需要获取实时数据对象数值,当前在SQL中进行数值判断的耗时长,效率低. 分析 当前执行效率低主要是程序结构设计的不合理. SQ ...
- 用php做管理后台
最近因处理家庭之事,技术上没有提高,这段时间也陆续的恢复了正常的开发,由于要做一个管理后台,所以在选择语言和架构上搜了不少资料, php 和java 的选择上,后来选择用php作为管理后台开发的语言. ...
- HCIA SWITCHING&ROUTTING 笔记——第一章 TCP/IP基础知识(2)
视频地址:https://ilearningx.huawei.com/courses/course-v1:HuaweiX+EBGTC00000336+Self-paced/courseware/abb ...