什么是事务?
答:指一组逻辑操作单元,使数据从一种状态变换到另一种状态。
事务的基本操作有哪些?
答:1、先定义开始一个事务,然后对数据作修改操作,这时如果提交(commit)
2、这些修改就永久地保存下来,如果回退(rollback)数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。
事务有哪些特性?
答:原子性、一致性、隔离性、持久性。
事务处理的代码:
public class TransactionTest { @Test public void testName() throws Exception { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = DruidUtil.getConnection(); //将事务设置为手动提交 conn.setAutoCommit(false); st = conn.createStatement(); // 1.检查张无忌的账号余额是否大于等于1000. rs = st.executeQuery("SELECT balance FROM account WHERE name = '张无忌' AND balance >=1000"); if(!rs.next()) { throw new RuntimeException("亲,您的账户余额不够"); } // 余额>=1000:GOTO 2: // 余额 <1000:提示:亲,你的余额不足. // 2.在张无忌的账号余额上减少1000. st.executeUpdate("UPDATE account SET balance = balance-1000 WHERE name = '张无忌'"); System.out.println(1/0); // 3.在赵敏的账户余额尚增加1000. st.executeUpdate("UPDATE account SET balance = balance+1000 WHERE name = '赵敏'"); //提交事务 conn.commit(); } catch (Exception e) { e.printStackTrace(); //回滚事务 conn.rollback(); }finally { DruidUtil.close(conn, st, rs); } } }