时间:2021-07-01 10:21:17 帮助过:19人阅读
当我们做错事时经常会感叹到 , 世界上有卖后悔药就好了, 当然现实生活中肯定没有 , 但是在程序中就有 他就是 java事务 ! 操作数据库出现任何问题的时候 都可以通过事务处理来解决 回到原来的状态 , 这就是 我们常用的 事务回滚 (rollback) . 好了 这就进入正题: 这次写的 数据迁移程序 用的是JDBC连接数据库 , 所以就只说下这个地方的用法吧 !
在connection类中提供了3个控制事务的方法:
(1) setAutoCommit(Boolean autoCommit):设置是否自动提交事务; (2) commit();提交事务; (3) rollback();撤消事务; 首先,我们要设置事务的提交方式, connection类 中事务默认是自动提交的, 也就是操作一下数据库 自动提交一次事务,所以就需要我们设置下 手动提交事务: con.setAutoCommit(false) 如果是ture 则自动提交 ,注意这是在程序开始的时候写的, 不要写在数据库操作代码的后面, 当对数据库操作完后 当然要提交下 con.commit() ; 证明这个整体是一个事务。 事务 一般都是配合 try catch 使用的 , 所以我们在出现异常的时候就要吃颗后悔药 , 要在catch里面 执行事务回滚 con.rollback(); 这样之前对数据库的所有操作 就已经完全恢复了为原来了!注意 必须在提交事务后才可以使用, 否则 程序是不会知道哪个是事务! 事务有四大特性:原子性 一致性 隔离性 持久性; 原子性:整个事务就像原子一样,是一个整体 不可再次进行分割。事务中对数据库的操作都是相互依赖的 要么全部执行 要么全部撤销!就像银行出账问题一样 必须同时执行SQL 否则银行钱扣了 客户缺没收到钱, 这岂不是乱套了! 一致性: 事务在处理的过程中必须要保证 对数据操作的正确性, 银行做500元交易的时候 银行减500 客户加500! 隔离性: 在进行事务处理的时候, 必须要保证 所需要的数据 是在其他事务修改它之前的数据 , 或是其他事务修改之后的数据。不能同时对同一数据进行事务处理! 持久性: 事务提交完后 对数据库的操作是永久性的 ,即使出现异常情况!
JAVA事务处理 之 JDBC事务
标签: