楼主这个回滚机制,针对的是java的事务管理吧! 事务处理之前必须进行取消自动提交,在默认情况下,所有的数据都是被默认提交上去的,就是说只要一执行更新就提交。
创新互联是一家专业提供平潭企业网站建设,专注与做网站、网站制作、HTML5、小程序制作等业务。10年已为平潭众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
取消自动提交之后,如果最后程序的代码(批处理代码)没有出错,则可以进行人为的手工提交。最后如果程序出现了错误,则应该进行回滚。
瑭锦Tanjurd解释一组业务整体处理的行为叫一个事务。这一组的业务都能成功处理,我们就可以把这个事务提交来保存你已做的行为结果。但如果一组中有任何的差错出现的话,我们就认为这事务不成功,需要回滚来撤消之前的操作。举例:你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,但可能你这时是已经从你账户中扣了钱了,又没往他账户里加钱?怎么办算了?你不肯吧。所以银行会事务回滚,不保存你刚才的操作,即恢复到你没转账之前的状态
//举例子,比如你在写一个级联删除的方法的时候,为了保证数据完整性,删除的时候一定要确定该删的都删了才行,否则就要回滚,下面是删除方法的例子: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的事务管理,跟你用的是什么数据库没关系,用什么数据库都是这样;
需要记住客户的状态,
客户端发来请求时,不要立即就处理,特别是涉及数据库的操作
可建立请求缓冲区,实际上是一个队列,你可以叫它客户请求队列。用于存储该用户在本次登陆到登出之间所有请求的记录。这样就可以配合数据库的事务机制回退N步。
新闻标题:java代码数据库回退 java退出系统的代码
浏览地址:https://www.cdcxhl.com/article48/hhjdep.html
成都网站建设公司_创新互联,为您提供自适应网站、定制开发、品牌网站制作、动态网站、微信小程序、标签优化
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联