JDBC中執行多個SQL語句事例
import java.sql.SQLException;
import java.sql.Statement;
import com.xcliang.util.code.DBUtil;
public class deleteStudent {
//如果要想在一個持久層方法中書寫多個相關的sql語句同時執行的話
//例:
public void deleteStudent(int studentID) {
//第一個sql語句
String sql1 = "update t_room set f_inNum = f_inNum - 1 where pk_roomid =(select fk_roomid from t_student where pk_studentid = "+studentID+")";
//第二個sql語句
String sql2 = "delete from t_student where pk_studentid = " + studentID;
//連線
Connection con = DBUtil.getConnection();
try {
//將sql語句的提交方式改為非自動提交
//注意:如果是true則表示自動提交第一個語句,第二個語句直接無視
con.setAutoCommit(false);
//多個sql語句執行
//第一句:
Statement stat1 = con.createStatement();
stat1.executeUpdate(sql1);
//第二句:
Statement stat2 = con.createStatement();
stat2.executeUpdate(sql2);
//提交sql語句執行
con.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
con.rollback();//如果兩句sql語句中只要有一個語句出錯,則回滾,都不執行
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} finally {
DBUtil.closeConnection(con);
}
}
}