
向数据库提交数据或修改数据,如果你觉得没有问题,就可以提交,如果其中有一个环节出错了,就可以设置回滚,可以根据判断进行回滚,不是非要出异常了才回滚,如何回滚如何提交要看你的业务逻辑。
比如:
你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,但可能你这时是已经从你账户中扣了钱了,又没往他账户里加钱,怎么办?银行会事务回滚,不保存你刚才的 *** 作,即恢复到你没转账之前的状态。
//举例子,比如你在写一个级联删除的方法的时候,为了保证数据完整性,删除的时候一定要确定该删的都删了才行,否则就要回滚,下面是删除方法的例子:public boolean delete(int sID) {//成功删除会返回truedbc = 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的事务管理,跟你用的是什么数据库没关系,用什么数据库都是这样
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)