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

浙公网安备 33010602011771号