JDBC处理事务的方法

JDBC中通常使用setAutoCommit(false)禁止自动提交,然后将多个数据库表达式作为1个事务,显式调用commit()方法提交。如有表达式操作失败则抛出异常,在异常捕获块中调用rollback()方法回滚。

4个读一致性问题:
脏读:一个事务读到了另一事务的未提交事务。
不可重复读:一个事务前后两次读到不同数据。
虚读:一个事务前后两次查询结果数量不同。
丢失修改:两个事务读入同一事务进行修改。T2提交的结果破坏了T1提交的结果。

JDBC中的5个事务隔离级别:事务的隔离是为了解决多个线程同时访问相同数据的问题。
TRANSACTION_NONE_JDB不支持事务。
TRANSACTION_READ_UNCOMMITED未提交读。此级别允许脏读、不可重复读、虚读。
TRANSACTION_READ_COMMITED已提交读。此级别允许脏读,而不允许不可重复读、虚读。
TRANSACTION_REPEATABLE_READ可重复读。解决了不可重复读,仍有虚读的现象。
TRANSACTION_SERIALIZABLE可序列化。事务最高隔离级别,可以防止脏读、不可重复读、虚读。
事务隔离级别越高,则为避免冲突的资源消耗越高。通过Connection对象的conn.getTransactionIsolation()方法确定事务隔离级别,通过conn.setTransactionLevel()设置隔离级别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值