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处理. ...
随机推荐
- TroubleShooting经验总结
1.WinDbg是微软开发的免费源代码级的调试工具.WinDbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件.WinDbg对于dump文件的调试可以通过菜单设置Symbol Fi ...
- fiddler构造表单上传文件的请求
Fiddler使用技巧:http://www.doc88.com/p-3307506524682.html Fiddler构造post请求,在请求header头里加上下面语句,提交的body才会被解析 ...
- SpringBoot学习笔记:自定义拦截器
SpringBoot学习笔记:自定义拦截器 快速开始 拦截器类似于过滤器,但是拦截器提供更精细的的控制能力,它可以在一个请求过程中的两个节点进行拦截: 在请求发送到Controller之前 在响应发送 ...
- web端自动化——selenium Page Object设计模式
Page Object设计模式的优点如下: ① 减少代码的重复. ② 提高测试用例的可读性. ③ 提高测试用例的可维护性,特别是针对UI频繁变化的项目. 当为Web页面编写测试时,需 ...
- 反馈神经网络Hopfield网络
一.前言 经过一段时间的积累,对于神经网络,已经基本掌握了感知器.BP算法及其改进.AdaLine等最为简单和基础的前馈型神经网络知识,下面开启的是基于反馈型的神经网络Hopfiled神经网络.前馈型 ...
- ubuntu18.04 阿里镜像源
备份:cp /etc/apt/sources.list /etc/apt/sources.list.bak 清空source.list:echo > /etc/apt/sources.list ...
- Appium移动自动化测试-----(五)python-client安装与测试
前提条件 当你点击这一章时,说明你是打算使用 Python 语言编写 appium 自动化测试脚本的. 1.安装 Python 语言 , Python的安装相对相简单得多. 2.Python 编辑器很 ...
- Generative Adversarial Network (GAN) - Pytorch版
import os import torch import torchvision import torch.nn as nn from torchvision import transforms f ...
- Python28之文件1
因为懂你,所以永恒 一.文件处理的重要性: 程序处理的数据都是在提取到内存,然后由CPU进行处理,而当断电或系统异常关机时,程序所处理的结果在内存中不会被保存.像永久的保存处理结果,对于windows ...
- firefox 获取xpath
在做一个爬虫是,输入内容后,会自动显示内容,而且只能选择,不能根据输入的提交,一点就失去焦点,找不到相关内容 后来发现firefox的查看元素的最左边的类似于鼠标尖头的按钮,就是确保这种情况下,去查找 ...