java jdbc 批量更新_java – JDBC PreparedStatement,批量更新和生成的密钥
我在批处理中使用jdbc preparedStatement并尝试获取由此创建的生成密钥时出现问题.
代码 :
PreparedStatement stmt = null;
...
connection.setAutoCommit(false);
stmt = connection.prepareStatement(insertSuspiciousElement,new String[] {"external_id","element_id"});
final int elementBatchSize = 5000;
int elementCount =0;
for(BlSuspiciousElement element : elements){
externalIds.add(element.getExternalId());
stmt.setInt(1, element.getBlElementType().getElementTypeId());
stmt.setString(2, element.getFirstname());
stmt.addBatch();
elementCount++;
if(elementCount % elementBatchSize == 0){
System.out.println("Running query with batch size for suspiciousElement");
stmt.executeBatch();
ResultSet keys = stmt.getGeneratedKeys();
while(keys.next()){
externalIdElementIdMapping.put(keys.getInt("external_id"),keys.getInt("element_id"));
}
keys.close();
stmt.clearBatch();
stmt.clearParameters();
stmt.clearWarnings();
System.out.println("Done query with batch size for suspiciousElement");
}
}
它在第一个stmt.executeBatch()方法失败.
错误 :
[30/01/12 15:54:41:684 CET] 00000029 RemoteExcepti E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "processFullFeedForPepAndRelationUpdateOnly" on bean "BeanId(CoRelateEar#AmlKycToolBO.jar#FactivaDBUpdater, null)". Exception data: java.lang.ArrayIndexOutOfBoundsException
at oracle.jdbc.driver.T4CNumberAccessor.unmarshalOneRow(T4CNumberAccessor.java:201)
at oracle.jdbc.driver.T4C8Oall.readRXD(T4C8Oall.java:696)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:340)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)
at oracle.jdbc.driver.OraclePreparedStatement.executeForRowsWithTimeout(OraclePreparedStatement.java:10143)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10249)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:230)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:748)
对我来说不是很明显……
它似乎不适用于批量更新?仅用于声明或准备好的声明.在这种情况下,我想我最好尝试进行我的批量插入,然后运行另一个查询来查找每个创建的元素生成的键…
谢谢你的帮助,
F
java jdbc 批量更新_java – JDBC PreparedStatement,批量更新和生成的密钥相关推荐
- java操作oracle数据_Java jdbc操作oracle数据库的两种方式
本文由广州疯狂软件java培训分享: 第一种应该是比较古老的方法了. Windows下采用JDBC-ODBC Bridge连接oracle数据库 1. 安装oracle客户端程序,在tnsnames. ...
- java运行 mavenzip包_JAVA开发必知工具-Maven-Maven生成可以直接运行的jar包的多种方式...
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...
- java mongodb批量更新_java中mongoTemplate批量更新
方法:mongoTemplate.getDb().getCollection(tableName).bulkWrite(requests); public BulkWriteResult bulkWr ...
- java中的JDBC用户管理系统_Java+JDBC学生信息管理系统
base包下: package base; import java.sql.ResultSet; import java.sql.SQLException; import dao.AdminDAO; ...
- java mysql数据库编程_java JDBC数据库(mysql)编程
什么是JDBC • JDBC(Java Data Base Connectivity,Java数据库连接) • 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 • 它由一组用 ...
- java mysql结果集_Java JDBC结果集的处理
结果集指针的移动 while(resultSet.next()){//...... } 指针最初指向第一条记录之前,next()是指向下一个位置,返回的是boolean值,true表示有内容(记录), ...
- java 注册驱动失败_java – JDBC驱动程序注册死锁?
在一个线程中,正在创建一个JackRabbit: "docs-on-startup" #32 prio=5 os_prio=0 tid=0x00007f730d73e800 nid ...
- java hive建表_java jdbc 操作 hive 建表 load 数据
// 需要引入 hadoop & hive jar import java.sql.Connection; import java.sql.DriverManager; import java ...
- java 批量存储_java I/O 批量插入保存文件
[java]代码库package cq.price; import java.io.File; import java.util.ArrayList; import java.util.List; i ...
最新文章
- 基于JWT(Json Web Token)的ASP.NET Web API授权方式
- exec sp_prepare @P1 output
- oracle 修改聚簇因子,Oracle 基础篇 --- 聚簇因子(clustering_factor)
- 【ElasticSearch】使用Docker安装ElasticSearch、基本增删改查使用
- 解决scrollViewDidScroll do not work的方法
- java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...
- 泄漏:Oracle WebLogic Server 12g
- 阿里如何做到百万量级硬件故障自愈?
- %02 java_02_Java语法
- 整理了4个B端产品调研网站,不花一分钱获得最全面的产品体验
- [翻译] JTBorderDotAnimation
- 不用IIS跑.net web应用
- 触摸屏一体机的类型有哪些
- 工作中遇到大小端数据存储格式
- Halcon 3D create_pose
- python-shixian考拉兹猜想
- C语言————鸡兔共有30只,脚共有90只,下面的程序段是计算鸡和兔共有多少只?
- HTTP学习笔记(适合初学)2
- navicat mysql 百度云_转载:用navicat连接百度云服务器上的mysql数据库
- 【十进制 转 二进制】【二进制 转 十进制】10进制 VS 2进制【清华大学考研机试题】
热门文章
- Jenkins2.249-自定义插件安装(十一)
- R语言使用glmnet包拟合lasso-cox回归模型(生存时间和结果标签)、lasso-cox模型进行特征筛选、plot函数可视化cv.glmnet模型获得的最佳lambda曲线位置及其1个标准差线
- 如何解释“运维到底是干啥的”?
- BigCommerce vs WooCommerce,哪个更适合跨境电商开展业务?
- Step7中有关时间和定时器的使用和例程2
- 高通baseband多媒体简介
- py使用polar绘制霍兰德职业测试雷达图
- java使用jol打印对象信息
- java hasnext_Java扫描仪的hasNext()方法与示例
- 机器学习模型可解释性进行到底 —— SHAP值理论(一)