java程序执行10万条update语句,如何提高效率 mysql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 hibernate批量删除或更新优化, 有意想不到的结果,也许这个可以实现jdbc啊executeSQL 使用jdbcTemplate.execute(String sql); 本人在此之前没有接触过hibernate批量更新,经大神指点,马上查阅资料,发现资料中的批量更新,得先把数据一次性查询出来,可我的十万条数据不能做到一次性查询啊!能告诉具体怎么做吗? 对于这种list的数据更新,我一般的做法是先拼凑多条sql语句数组,然后批量执行sql数组。这种方法可以提高io速率,但浪费了内存。 用PreparedStatement的executeBatch来做 http://blog.csdn.net/uohzoaix/article/details/7372427 这里有你需要的 jdbc批处理非常适合你这种情况,并且效率极高,大致代码如下conn = JdbcUtil.getConnection();i++;String sql1 = "insert into user(name,password,email,birthday) values('kkk','123','[email protected]','1978-08-08')";String sql2 = "update user set password='123456' where id=3";st = conn.createStatement();st.addBatch(sql1); //把SQL语句加入到批命令中st.addBatch(sql2); //把SQL语句加入到批命令中if(i%10000==0) st.executeBatch(); 这里的批量更新操作where条件是固定的,比如更新年龄大于1的记录的年龄都加1,where 条件就是age>1;而我的where 条件是不一样的,我要实现的是一个类似将id为1的年龄更新为2,将id为2的年龄更新为5,将id为3的年龄更新为2....., jdbc批量删除修改更新,比框架的快一些 或者说存储过程 在操作的时候记得及时的释放资源! PreparedStatement 的 executeBatch 是应该的, Hibernate 本身也是依赖于 JDBC 的嘛。总之我们要避免不必要的修改和减少网络通信的次数还要“提示数据库我们批量执行不需要每次重新编译SQL语句”,像Oracle 自动对编译过的SQL 缓存的技术并不见得所有数据库都默认开启需要我们通过 JDBC PreparedStatement 明确地提示数据库这样去做。如果本来就是批量处理的,或许可以用数据库提供的从文件导入的工具来做,当然这就不通用了,主要是给夜间批量导入导出数据准备的,每家厂商的做法不一样,还可能要求导入和导出的双方版本相同。 jsp 页面跳转的问题 过滤器无效,请高手看看 刚刚接触不久,有错误,大家帮个忙. 关于JfreeChart的问题,很急,大家帮帮忙? 关于在WEB.XML中<servlet-mapping>的问题 怎样对HASH表进行多项数据的删除? 关于CAS单点登录的问题 jsp中无法得到一组同名的textarea中的内容。急等待。。。马上揭帖谢谢 请问,怎么样将一个 XML DOM创建的Document 保存为一个 XML 文件?(新手) 请问在java中如何取得一个字符串的某几位? 皕杰报表同值合并的问题 Struts2中,action向Jsp页面传值的问题
这种方法可以提高io速率,但浪费了内存。
conn = JdbcUtil.getConnection();
i++;
String sql1 = "insert into user(name,password,email,birthday)
values('kkk','123','[email protected]','1978-08-08')";
String sql2 = "update user set password='123456' where id=3";
st = conn.createStatement();
st.addBatch(sql1); //把SQL语句加入到批命令中
st.addBatch(sql2); //把SQL语句加入到批命令中
if(i%10000==0)
st.executeBatch();
这里的批量更新操作where条件是固定的,比如更新年龄大于1的记录的年龄都加1,where 条件就是age>1;而我的where 条件是不一样的,我要实现的是一个类似将id为1的年龄更新为2,将id为2的年龄更新为5,将id为3的年龄更新为2.....,
记得及时的释放资源!