Java 一次执行多条sql

//一次执行多条SQL,如果传来的SQL如果有一条不成功将显示失败
//Arraylist 为已封装的SQL语句 
//sMsg 为信息提示。当执行出问题时,输出相应的信息。(如:输入类名方法名,出错时可以看到出问题的方法名称)
public boolean exeManySQL(ArrayList arr,String sMsg)
{
  boolean bool=false;
  int nSize=arr.size();
  if(nSize>0)
  {
   //自定义链接数据库方法
    openDB();
    try {
      //不自动提交
     con.setAutoCommit(false);
     for(int i=0;i<nSize;i++)
     {
       String sTempSQL=(String)arr.get(i);
//System.out.println(sTempSQL);
       st.addBatch(sTempSQL);
     }
//     System.out.println("开始执行了...");
     int [] numArr=st.executeBatch();
//     System.out.println("numArr长度为:"+numArr.length);
//如果有一条出错时就执行回滚     
if(numArr.length==nSize) 
     {
       con.commit();//提交
       bool=true;
     }else
     {
       con.rollback(); //回滚
     }
    }
    catch (Exception ex) {
     tempBean.systemOutException(sMsg);
     tempBean.systemOutException("执行多条SQL语句时出错啦!");
     Debugger.printStackTrace(ex);
      try {
        con.rollback(); //回滚
      }
      catch (SQLException ex1) {
     if(arr.size()>0)
     {
     sMsg=(String)arr.get(0);
     }
     tempBean.systemOutException("执行多条SQL语句回滚时出错了! ");
        tempBean.systemOutException(ex1.getMessage());
        Debugger.printStackTrace(ex1);
      }
    }
    finally
    {
      closeDB();
    }
  }
  return bool;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值