数据库批处理的几种方法

 首先,要关闭数据库连接的自动提交。否则就不叫批处理了。
 connect.setAutoCommit(false);

 然后,判断该数据库是否支持批更新。
 DatabaseMetaData dbmData = connect.getMetaData();
 //...
 if (dbmData.supportsBatchUpdates())
 {
  //使用Statement创建批处理
  statement.addBatch("你的SQL语句");
  //根据需要添加多条批处理
  statement.addBatch("你的SQL语句");
  //获得批处理的结果
  int[] uCounts = statement.executeBatch();
  //等全部添加好了之后,可以一次性递交了。
  connect.commit();

  //使用PreparedStatement进行批处理
  PreparedStatement psStatement = connect.prepareStatement("你的SQL语句(?)");
  psStatement.setString(1,"Jennie");
  psStatement.addBatch();
  //根据需要添加多条批处理语句
  psStatement.setString(1,"Tom");
  psStatement.addBatch();
  //获得批处理的结果
  int[] uCounts = psStatement.executeBatch();
  //和上面一样可以一次性执行
  connect.commit();

  //使用CallableStatement进行批处理
  CallableStatement cStatement = connect.prepareCall("{call 你的存储过程(?))");
  cStatement.setString(1,"Jennie");
  cStatement addBatch();
  //根据需要添加多条批处理语句
  cStatement.setString(1,"Tom");
  cStatement.addBatch();
  //获得批处理的结果
  int[] uCounts = cStatement.executeBatch();
  //和上面一样可以一次性执行
  connect.commit();
}

最后可以通过捕获 BatchUpdateException 异常的getUpdateCounts()方法,返回的int[]值,来获得每一条批处理的处理数量。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值