具体是这样使用的:
循环2000条数据例如数据被装到了一个名叫dataList的List<Map<String,String>>中,那么批量更新就是这样执行的
Map map = null
String data1= ""
String data2 = ""
String sql = insert into biao values(?,?)
PreparedStatement preStmt = conn.prepareStatement(sql)
for(i = 0i<dataList.size()i++){
map = dataList.get(i)
data1=map.get("data1")
data2 = map.get("data2")
preStmt.setString(1,data1)
preStmt.setString(2, data2)
preStmt.addBatch()
}
preStmt.executeBatch()
preStmt.clearBatch()
bangbong说的不错____Linus____说的就不太靠谱了
用连接池可以重复利用数据库连接,提高效率;当然最重要的仍然是优化:正确的优化SQL;为查询建立正确的索引;使用分页等手段只获取需要的数据;为不经常变动的数据建立cache,优先走cache等都是可行的选择。
JDBC只是一种连接数据库的协议,另外的例如JNDI也可以做到。hibernate作为一个orm框架,和JDBC所处的层面就不同,根本不是一回事啊……
1,关闭目标表上的索引。2,关闭数据库日志
3,增加数据库的临时表空间。
4,分批次的提交。
5,可以考虑异步提交。
6,在分布式条件下,还可以考虑在不同的数据库结点提交,有底层的消息系统完成数据扩展。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)