最近再处理字节解析问题的时候,突然想到去年年底做的一个关于大量数据存储或者修改数据库的问题。
项目先不说,具体要实现的功能就是将根据路线计算出来的路面栅格数据存储进数据库,并将栅格上所属的变数实时更新。
最初是想使用平台的hibernate框架来进行处理。后来打算先尝试下原生的JDBC。我们使用的数据库是sql server2008
过程记不太清了。普通的数据库处理过程可能会导致脏读的问题。后来查询了各种资料,发现prepareStatement.addBatch(str)的方法。
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try {
conn = DBConnection.getConn();//自己写的连接工具
stmt = conn.createStatement();
//将要处理的sql语句先放入addBatch()方法中
for(String str:sql){
pstmt = conn.prepareStatement(str);
pstmt.addBatch(str);
}
i=pstmt.executeBatch();
//将你想要的所有语句一次性处理完
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
测试的时候发现。再sqlserver的数据库环境下,一次性能处理的数据量大概再5W到8W条左右