lzth.net
当前位置:首页 >> jDBC PrEpArEDStAtEmEnt ExECutEBAtCh方法执行效率... >>

jDBC PrEpArEDStAtEmEnt ExECutEBAtCh方法执行效率...

按说效率不会低到这种地步,你执行的是insert语句 我很想知道 你目前的代码有没有开启手动提交事务,如果你是自动提交事务那么可能会导致这800多条会执行一条 提交一次事务,导致时间全部浪费在这里了,你可以尝试一下手动提交事务,等executebatch执行了 然后提交事务.conn.setAutoCommit = false;//代码conn.commit();就是上面

executeBatch方法会返回一组int数据,对应每条sql的执行结果,可以据此来判断

下面为个人意见仅供参考:1. Statement用于处理静态 SQL 语句, PreparedStatement用于处理动态SQL语句,在执行前会有一个预编译的过程,它是有时间开销的,虽然相对于数据库的操作该时间开销可以忽略不计.但是后者的预编译结果会

期待看到有用的回答!

conn = drivermanager.getconnection(url, username, password);//自己链接数据库 preparedstatement pstmtinsert = conn.preparestatement("insert into student values(?, ?, ?, ?)"); // 创建语句,里面的参数等可以用问号代替 pstmtinsert.setstring(1,"a");//给第一个问号赋值"a"; pstmtinsert.setstring(2,"b");//给第二个问号赋值"b"; .

解决办法:1.加大内存,你一个内部循环搞定,产生了很多的句柄,堆栈内存放不下了2.将一次操作封装到一个方法中,使用另一个方法来循环调用你封装的方法,自然就不会产生过多的无效句柄

你可以找一下 Statement、PreparedStatement类里的 executeBatch()方法

你好!检查驱动,SQL语法,调用方法参数类型.打字不易,采纳哦!

String sql="sql内容";int[] i=statement.executeBatch(sql);//试试看我也不是很懂将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组.返回数组的 int 元素的排序对应于批中的命令,批中的命令根据被添加到

Batch update returned unexpected row count from update [10]; actual row count:0; expected:1检查了很久也没找到原因,主要是sybaes的驱动做的不好,没有报告原

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com