Java 事务详解及简单应用实例
Java事务的简单使用 Java事务在一些面试中会被问到。 面试的时候,我们首先要回答的是:事务能够保证数据的完整性和一致性。 如果功力深厚点的话:就说一些原理(任务开始前先设置不提交任务,在所有任务完成后再提交任务, 本文对java事务做简单的探讨,一问到java事务我们要知道这和数据库相关。 一.先看一段简单的代码 使用JDBC方式进行事务处理 public int delete(int sID) { //实现数据库连接的类 DataBaseConnection dbc = new DataBaseConnection(); //获取连接对象 Connection con = dbc.getConnection(); try { con.setAutoCommit(false);// 更改JDBC事务的默认提交方式 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 1; } catch (Exception exc) { con.rollBack();//回滚JDBC事务 dbc.close(); return -1; } } 上面这一段代码就是一个比较简单的java事务的执行。 如果没有事务的管理,前面执行了就会马上在数据库里面更新, 二.Java事务的基础概念 原子性(Atomicity) :事务是一个完整的操作。事务的各步操作是不可分的(原子的); 它不应以任何方式依赖于或影响其他事务 java的事务处理描述:如果对数据库进行多次操作,每一次的执行或步骤都是一个事务. 在数据库操作中,一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。 例如在银行的转帐事务中,假定张三从自己的帐号上把1000元转到李四的帐号上,相关的sql语句如下: update account set monery=monery-1000 where name='zhangsan' update account set monery=monery+1000 where name='lisi' 这个两条语句必须作为一个完成的事务来处理。只有当两条都成功执行了,才能提交这个事务。 在connection类中提供了3个控制事务的方法: 在jdbc api中,默认的情况为自动提交事务,也就是说,每一条对数据库的更新的sql语句代表一项事务, 在jdbc api中,可以通过调用setAutoCommit(false) 来禁止自动提交事务。 一般来说,专门开发数据库的开发者肯定是要对事务了解很深入的, 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |