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"; .

期待看到有用的回答!

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

Statement smt = con.createStatement();String sql = "insert into table1 values('a','b')";String sql1 ="insert into table1 values('c','d')";smt.addBatch(sql);smt.addBatch(sql1);int i[] = smt.executeBatch();// 返回数组,数组长度为执行的语句的个数,// 每个元素为执行语句影响的数据的条数

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

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

批量数据进入数据库使用addBatch()和executeBatch()方法PreparedStatement.addBatch(); PreparedStatement.executeBatch();需要注意的是一次最多不要超过50条:1.因为插入的时候数据库已经锁定,然而若是一次性插入太多会

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