今天用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批量添加,表被锁住问题的更多相关文章

  1. java操作elasticsearch实现批量添加数据(bulk)

    java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...

  2. Oracle查看哪些表被锁住了

    --查看哪些表被锁住了select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_object ...

  3. 解决oracle 表被锁住问题

    想修改Oracle下的某一张表,提示 "资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效" 看上去是锁住了. 用系统管理员登录进数据库,然后 SELECT sid, ...

  4. java 学习原生jdbc

    public class App { public static void main( String[] args ) { //JDBC驱动 String driverName = "com ...

  5. java类型与jdbc类型对应表

      java.sql.Types 值 Java 类型 IBM DB2 Oracle Sybase SQL Informix IBM Content Manager   BIGINT java.lang ...

  6. MySQL批量添加表字段

    ALTER TABLE custom ADD contacts2 VARCHAR(50) NOT NULL DEFAULT '' COMMENT '客户联系人2',ADD phone2 VARCHAR ...

  7. Oracle update或alter表被锁住的问题

    \\ 查询被锁的对象.来源.sid和serial select object_name, machine, s.sid, s.serial# from v$locked_object l, dba_o ...

  8. 【JAVA - SSM】之MyBatis与原生JDBC、Hibernate访问数据库的比较

    首先来看一下原生JDBC访问数据库的代码: public static void main(String[] args) { // 数据库连接 Connection connection = null ...

  9. java中使用JDBC的preparedStatement批处理数据的添加

    在项目中我们偶尔可能会遇到批量向数据库中导入数据,如果批处理的情况较多的情况下可以使用spring batch,如果只是一个导入功能的话可以考虑使用jdbc的preparedStatement处理. ...

随机推荐

  1. DALFactory出现"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案 .

    自己在使用抽象工厂+配置文件+反射实现重构机房的过程中,遇到了这种情况, 当初自己认真的检查了反射中的代码,都是没有问题,请教了师姐,检查了抽象工厂与反射的使用都没有问题 // 查找我们将要使用的数据 ...

  2. ELK之Kibana的可视化监控报警插件sentinl的配置

    参考:https://www.bbsmax.com/A/gGdXbgXmJ4/ https://www.deathearth.com/333.html  https://www.cnblogs.com ...

  3. SpringBoot里自定义banner

    国外有一个专门用来生成banner的网址:http://patorjk.com/software/taag ,打开这个网址,生成你想要的字儿. 生成时,我们可以选择自己喜欢的字体等信息. 完成后,选择 ...

  4. idea的maven依赖本地jar

    可以手动添加jar,但是idea手动添加jar时,有时候不行. 用maven依赖本地jar方法,感觉比较正规,不会因为自己忘记手动添加jar. 比如这个达梦数据库依赖 <dependency&g ...

  5. Transformer的numpy实现

    下面的代码自下而上的实现Transformer的相关模块功能.这份文档只实现了主要代码.由于时间关系,我无法实现所有函数.对于没有实现的函数,默认用全大写函数名指出,如SOFTMAX 由于时间限制,以 ...

  6. vc编译器对 除法的优化

    基本知识,7/2 和 6/2 在计算机中的商都为3.C语言的除法不等同于数学意义中的除法. C语言的除法.采用向零取整的方法. -______________0_______________+ 只有在 ...

  7. Quartz.Net—Calendar

    动态的排除一些触发器的时间. DailyCalendar-天日历 定义: This implementation of the Calendar excludes (or includes - see ...

  8. sqlservei 日志文件清除

    USE [master] GO ALTER DATABASE DFTDDB SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE DFTDDB SET ...

  9. springboot之Redis

    1.springboot之Redis配置 在学习springboot配置Redis之前先了解Redis. 1.了解Redis Redis简介: redis是一个key-value存储系统.和Memca ...

  10. xsy 2412【BZOJ4569】【Scoi2016】萌萌哒

    Description Description 一个长度为n的大数,用S1S2S3...Sn表示,其中Si表示数的第i位,S1是数的最高位,告诉你一些限制条件,每个条件表示为四个数,l1,r1,l2, ...