Java 一次執行多條sql
阿新 • • 發佈:2019-02-13
//一次執行多條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;
}