Java程序向数据库批量更新

阅读更多
JSONArray list = json.getJSONArray("data_list");
conn.setAutoCommit(false);
 
PreparedStatement pstmt = conn.prepareStatement("insert into db_order values(?,?,?,?)");
PreparedStatement stat = conn.prepareStatement("insert into db_order_rcv(sequenceid, mobile, price) values(?,?,?)");

for(int n = 0;n 
  

      有的时候,工作上需要将数据批量地增改至数据库中,这时候Java的JDBC驱动程序提供的批量更新功能就很重要,可以在一个网络往返行程中在数据库中执行多条SQL语句。

      要确定JDBC驱动程序是否支持批量更新,快速调用DatabaseMetaData.supportsBatchUpdates()可产生一个明示支持与否的布尔值。在支持批量更新时(由一些非select标示),所有任务逐个排队然后在某一瞬间同时得到更新,如上述代码所示。

      默认必须调用setAutoCommit(),驱动程序会试图交付提供给它的每条语句。(这里不是很清楚!)

      准备好各种语句之后,在数据库中使用executeBatch()触发所有的语句,这将返回一组整型值,每个值保存同样的结果,好像使用了executeUpdate()一样。

      在批量处理的一条语句发生错误的情况下,如果驱动程序不支持批量更新,或者批量处理中的一条语句返回ResultSet,驱动程序将抛出一个BatchUpdateException。有时候,在抛出一个异常之后,驱动程序可能试着继续执行语句。JDBC规范不能授权某一行动,因此应该事先试用驱动程序,这样就可以确切地知道它是如何工作的。

你可能感兴趣的:(Java程序向数据库批量更新)