1. 程式人生 > >Java 一次執行多條sql

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; }