import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Procedure2 {
public static void main(String[] args) {
Connection conn=null;
String conUrl="jdbc:sqlserver://localhost:1433;databaseName=movie";
try{
conn=DriverManager.getConnection(conUrl,"sa","passw0rd"); //目前帳號密碼寫死
conn.setAutoCommit(false); //設定自動交易為關閉(預設是開啟)
String sql="{call gen_seats('2008-12-25 13:00',1,'A廳')}"; //呼叫DB中的預存程序指令
CallableStatement cs=conn.prepareCall(sql);
cs.execute();
conn.commit(); // 確認交易
System.out.println("交易成功"); //當執行到這行無錯誤,則成功
}catch (SQLException e){
System.out.println("交易失敗,資料將不會儲存"); //當發生例外狀況,交易失敗
try{
conn.rollback(); //取消交易(回到原始狀態)
}catch (SQLException e2){
System.out.println(e2);
}
}finally{ //關閉資源
if (conn !=null)
try{
conn.close();
}catch(SQLException e){
System.out.println(e);
}
}
}
}
問題,如果使用自動確認狀況下,
會導致資料不完全,原因?
沒有留言:
張貼留言