java更新数据库错误就回滚_Java 中对数据库操作时的 回滚
Connection conn=null;
conn.rollback()就可以回滾
//用jdbc連接數據庫
//舉例子,比如你在寫一個級聯刪除的方法的時候,為了保證數據完整性,刪除的時候一定要確定該刪的都刪了才行,否則就要回滾,下面是刪除方法的例子:
public boolean delete(int sID) {//成功刪除會返回true;
dbc = new DataBaseConnection();//根據你自己的方式創建數據庫的連接
Connection con = dbc.getConnection();//得到Connection
try {
con.setAutoCommit(false);// 更改JDBC事務的默認提交方式,默認是true,是自動提交;
dbc.executeUpdate("delete from xiao where ID=" + sID);//刪除
dbc.executeUpdate("delete from xiao_content where ID=" + sID);//刪除
dbc.executeUpdate("delete from xiao_affix where bylawid=" + sID);//刪除
con.commit();//提交JDBC事務,如果沒問題,這時才真正的刪除了;
con.setAutoCommit(true);// 恢復JDBC事務的默認提交方式,這是個好習慣;
dbc.close();//關閉連接
return true;//刪除成功
}
catch (Exception exc) {
con.rollBack();//回滾JDBC事務,出現異常,為保證數據完整性,此次操作回滾,不刪除;
exc.printStackTrace();//輸出異常信息;
dbc.close();//關閉連接
return false;//刪除失敗
}
}
//順便說一下,java中JDBC的事務管理,跟你用的是什么數據庫沒關系,用什么數據庫都是這樣;
//做添加操作
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
String tableName = args[0];
Integer id = JdbcUtil.parseInt(args[1]);
String name = args[2];
String command = args[3];
try{
con = JdbcUtil.getConnection();
con.setAutoCommit(false);
String sql = "insert into "+tableName+
" values(?,?)";
ps = con.prepareStatement(sql);
ps.setInt(1,id);
ps.setString(2,name);
ps.executeUpdate();
con.commit();//手動提交
}catch(Exception e){
System.out.println(e.getMessage());
try{
con.rollback();//手動回滾
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}finally{
JdbcUtil.close(rs,ps,con);
}
//做修改操作
try {
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=JavaDB;Password=javadb;DatabaseName=northwind);
//點禁止自動提交,設置回退
conn.setAutoCommit(false);
stmt = conn.createStatement();
//數據庫更新操作1
stmt.executeUpdate(“update firsttable Set Name='testTransaction' Where ID = 1”);
//數據庫更新操作2
stmt.executeUpdate(“insert into firsttable ID = 12,Name = 'testTransaction2'”);
//事務提交
conn.commit();
}
catch(Exception ex) {
ex.printStackTrace();
try {
//操作不成功則回退
conn.rollback();
}
catch(Exception e){
e.printStackTrace();
}
}
總結
以上是生活随笔為你收集整理的java更新数据库错误就回滚_Java 中对数据库操作时的 回滚的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用AI+大数据!钟南山团队联合腾讯发布
- 下一篇: 三季度全球PC显示器出货量罕见下跌:戴尔