JavaWeb开发之JDBC事务

什么是事务?

答:指一组逻辑操作单元,使数据从一种状态变换到另一种状态。

事务的基本操作有哪些?

答: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);
		}
		
	}
}

  

猜你喜欢

转载自www.cnblogs.com/luojack/p/10896094.html