- 浏览: 118873 次
- 来自: ...
-
文章分类
最新评论
-
x影千绝:
...
JDBC addbatch批量处理数据时有最大值限制 -
hunnuxiaobo:
为什么呢?
JDBC addbatch批量处理数据时有最大值限制 -
天涯海角tour:
是啊? 我在7.1下就装不上jbpm4.4,按你这着方法
MyEclipse7.1插件安装 -
t8500071:
原来exec后是子进程,怪不得我怎么看都不像是一个完全独立的进 ...
Java的多进程运行模式分析 -
海阔天空love:
很实用 。。。能给个例子吗?
现有的Web打印控制技术分成几种方案
在用jdbc向数据灌入数据时,发现120000的数据每次只能灌入50000多条,其他的就没有了。
在oracle 9i(windows 2003),oracle 10g(RHEL 4)上试验证有相同的结果。
使用定量灌入的办法,每5W条定义为一个事务,进行提交,将120000数据循环灌入,成功。
对于批量的update,delete操作两样有5W条左右的记录数限制。
结论:jdbc批量数据处理的每个批次是有数量的限制的。
我在本地环境中测试的限制量为每批54464条,其他配置的机器没有试过。
以下是插入数据时的代码:
以下是删除数据时的代码:
以下是更新数据的代码:
在oracle 9i(windows 2003),oracle 10g(RHEL 4)上试验证有相同的结果。
使用定量灌入的办法,每5W条定义为一个事务,进行提交,将120000数据循环灌入,成功。
对于批量的update,delete操作两样有5W条左右的记录数限制。
结论:jdbc批量数据处理的每个批次是有数量的限制的。
我在本地环境中测试的限制量为每批54464条,其他配置的机器没有试过。
以下是插入数据时的代码:
ConnDB cd = new ConnDB(); Connection ct = null; PreparedStatement pst = null; ResultSet rs = null; ct = cd.getConn(); String insertSql = "insert into mytable (name,age) values(?,?)"; System.out.println(insertSql); try { ct.setAutoCommit(false); // 开始事务 pst = ct.prepareStatement(insertSql); for (int i = 0; i < 120000; i++) { pst.setString(1, "name" + i); pst.setInt(2, i); pst.addBatch(); System.out.println(i); //分段提交 if((i%50000==0&& i!=0)||i== (120000 -1)){ pst.executeBatch(); ct.commit(); ct.setAutoCommit(false);// 开始事务 pst = ct.prepareStatement(insertSql); System.out.println("------------>50000"); } } ct.commit();// 提交事务 } catch (SQLException e) { try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } catch (RuntimeException e) { try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } } finally { cd.close(ct, pst, rs); } }
以下是删除数据时的代码:
ConnDB cd = new ConnDB(); Connection ct = null; PreparedStatement pst = null; ResultSet rs = null; ct = cd.getConn(); String deleteSql = "delete from mytable t where t.name=?"; System.out.println(deleteSql); int[] intArray = new int[120000]; try { ct.setAutoCommit(false); // 开始事务 pst = ct.prepareStatement(deleteSql); for (int i = 0; i < 120000; i++) { pst.setString(1, "name" + i); pst.addBatch(); System.out.println(i); // 分段提交 if ((i % 50000 == 0 && i != 0) || i == (120000 - 1)) { intArray = pst.executeBatch(); ct.commit(); ct.setAutoCommit(false);// 开始事务 pst = ct.prepareStatement(deleteSql); System.out.println("------------>50000"); } } ct.commit();// 提交事务 } catch (SQLException e) { try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } catch (RuntimeException e) { try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } } finally { cd.close(ct, pst, rs); } }
以下是更新数据的代码:
ConnDB cd = new ConnDB(); Connection ct = null; PreparedStatement pst = null; ResultSet rs = null; ct = cd.getConn(); String deleteSql = "update mytable t set t.age =20 where t.name=?"; System.out.println(deleteSql); int[] intArray = new int[120000]; try { ct.setAutoCommit(false); // 开始事务 pst = ct.prepareStatement(deleteSql); for (int i = 0; i < 120000; i++) { pst.setString(1, "name"+i); pst.addBatch(); System.out.println(i); // 分段提交 if ((i % 50000 == 0 && i != 0) || i == (120000 - 1)) { intArray = pst.executeBatch(); ct.commit(); ct.setAutoCommit(false);// 开始事务 pst = ct.prepareStatement(deleteSql); System.out.println("------------>50000"); } } ct.commit();// 提交事务 } catch (SQLException e) { try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } catch (RuntimeException e) { try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } } finally { cd.close(ct, pst, rs); } }
发表评论
-
thinkpad T440P 无线网卡睡眠恢复后无法上网故障的解决
2014-08-06 23:54 2592现象:thinkpad T440P 无线网卡睡眠恢复后无法上网 ... -
myeclipse10.7.1注册及导出war异常的破解
2013-03-02 12:55 7一、原作者的破解程序在myeclipse10.7.1环境下测试 ... -
tcnative-1_dll下载地址
2012-04-09 22:31 1104tcnative-1.dll下载地址: http://arch ... -
转:权限的分类
2011-09-30 16:59 1096权限主要分两大类:一是功能权限,二是数据权限。 功能权 ... -
转:表单同时提交多条记录
2011-09-07 09:38 2545http://zhidao.baidu.com/questio ... -
立即行动 拯救JAVA
2011-04-02 09:12 843通过Oracle目前的各种行动,我可以肯定它会比微软更 ... -
转:java获取根路径有两种方式
2010-09-04 22:49 2505http://java.chinaitlab.com/net/ ... -
转:java等比例压缩图片
2010-08-24 15:03 2138http://hi.baidu.com/bdusnb/blog ... -
转:多路归并排序(远远大于内存的数据进行外排序)
2010-08-20 16:38 1923http://hi.baidu.com/qq350884961 ... -
转:两个字母搞定J2EE通用分页标签
2010-06-16 15:59 1439两个字母搞定J2EE通用分 ... -
系统中那些部分可以提取为公共部分?
2010-06-12 18:39 842我目前能想到的就是: 分页、上传、通用DAO层、控制层、数据字 ... -
转:Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
2010-06-09 09:22 1139http://hi.baidu.com/vip099/blog ... -
c3p0 no bug but the windows xp have
2010-05-31 08:33 17385月30日,用了一天的时间在找一个c3p0的bug,但没有找到 ... -
转:如何利用eclipse实现批量修改文件的编码方式
2010-05-29 14:02 3517原文地址:http://dev.firnow.com/cour ... -
转载:教你彻底解决 Tomcat 5下文字乱码问题
2010-03-04 20:30 945http://tech.ccidnet.com/art/353 ... -
网站如何赚钱
2009-05-28 13:30 609很多朋友,特别是对网 ... -
走进Java 7中的模块系统
2009-05-15 09:44 1028http://developer.51cto.com/art/ ... -
MyEclipse7.1插件安装
2009-04-28 11:06 3589最近刚使用MyEclise 7.1 ,发现期插件安装与以前有所 ... -
Java的多进程运行模式分析
2009-04-25 21:05 1204一般我们在Java中运行其它类中的方法时,无论是静态调用,还是 ... -
Erlang与JAVA的交互操作
2009-04-23 08:54 1598http://www.lupaworld.com/action ...
相关推荐
通过合理利用JDBC的批量处理功能,开发者可以优化数据操作的性能,特别是在处理大数据量时,能有效减少数据库的负担,提高系统的整体响应速度。因此,理解和掌握批量处理是每个Java数据库开发者必备的技能之一。
PreparedStatement允许我们在SQL语句中使用参数占位符,然后在执行时传入实际值,从而可以多次复用同一SQL模板,提高执行效率。 批量处理是优化数据库操作的另一个关键策略。通过将多个SQL语句组合在一起,一次性...
在Java编程中,Utils工具类通常是一些包含各种静态方法的类,这些方法可以用于执行通用的任务,如数据处理、I/O操作或者如本例中与数据库交互。这里我们主要关注的是一个名为"DbUtils"的Utils工具类,它被设计来简化...
##### jdbc批量处理数据 - 使用PreparedStatement对象的addBatch()方法添加SQL语句。 - 调用executeBatch()执行所有SQL语句。 ##### Oracle分页 - 使用ROWNUM伪列结合子查询实现分页。 - 或使用WITH子句配合RANK...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
《基于YOLOv8的智慧社区独居老人生命体征监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-mac.dmg)适用于macOS Intel系统,文件使用360压缩软件分割成两个压缩包,必须一起下载使用: part1: https://download.csdn.net/download/weixin_43800734/90557060 part2: https://download.csdn.net/download/weixin_43800734/90557056
侧轴承杯加工工艺编制及夹具设计.zip
NASA数据集锂电池容量特征提取(Matlab完整源码和数据) 作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
板料折弯机液压系统设计.zip
C6150车床的设计.zip
机器学习之KNN实现手写数字
python爬虫;智能切换策略,反爬检测机制
mpls-vpn-optionA-all
56tgyhujikolp[
GB 6442-86企业职工伤亡事故调查分析规则.pdf
汽车液压式主动悬架系统的设计().zip
2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
内容概要:本文档详细复现了金融数学课程作业,涵盖欧式看涨期权定价和投资组合优化两大部分。对于欧式看涨期权定价,分别采用Black-Scholes模型和蒙特卡洛方法进行了计算,并对彩虹期权进行了基于最大值的看涨期权定价。投资组合优化部分则探讨了最小方差组合、给定收益的最小方差组合、最大效用组合以及给定风险的最大收益组合四种情形,还对比了拉格朗日乘数法和二次规划求解器两种方法。文中不仅提供了详细的MATLAB代码,还有详尽的中文解释,确保每一步骤清晰明了。 适合人群:金融工程专业学生、量化分析师、金融数学爱好者。 使用场景及目标:①帮助学生理解和掌握金融衍生品定价的基本原理和方法;②为从事量化分析的专业人士提供实用工具和技术支持;③作为教学材料辅助高校教师讲授相关内容。 其他说明:文档还包括了完整的论文结构建议,从封面页到结论,再到附录,涵盖了所有必要元素,确保提交的作业符合学术规范。此外,还特别强调了数据预处理步骤,确保代码可以顺利运行。