java控制事务级别

本文介绍了JDBC事务管理,包括如何关闭自动提交以手动控制事务,并探讨了不同事务隔离级别,如脏读、不可重复读和幻读。详细讲解了 TRANSACTION_READ_COMMITTED 到 TRANSACTION_SERIALIZABLE 的作用。此外,还讨论了JDBC2.0的可滚动结果集特性,如不同类型的结果集、定位方法以及如何进行更新操作。批处理更新也被提及,强调了PreparedStatement在批量操作中的使用。
摘要由CSDN通过智能技术生成

JDBC事务并发产生的问题和事务隔离级别
原子操作使用事务,一组相关的操作。
数据库是事务性的资源,在数据库中所有的操作都与事务相关。JDBC中自动提交是打开的,所以我们感觉不到事务。
 1,如果con.setAutoCommit(false);就可以由我们提交。
 2, update
  insert
  delete
 
 3,    con.commit();或com.rollback();

1,脏读(dirty read),读取到了没有提交的数据。
2,不可重复读(UnPrpeatable Read),两次读取到了不同的数据,就是要保持在同一时间点上两次读取到的数据相同,不能够使查询数据时进行改变。
3,幻读(phantom),在两次查询同一时间点数据时,数据数量发生改变,要保持在同一时间点上两次读取到的数据相同。

事务隔离级别

TRANSACTION_NONE不使用事务。理论上的,实际没用。
TRANSACTION_READ_UNCOMMITTED 可以读取为提交数据。能脏读,这个级别没用,都不控制。
TRANSACTION_READ_COMMITTED 可以避免脏读,不能够读取没提交的数据,最常用的隔离级别  大部分数据库的默认隔离级别
TRANSACTION_REPEATABLE_READ可以避免脏读,不可重复读取,
TRANSACTION_SERIALIZABLE可以避免脏读,重复读取和幻读,(事务串行化)会降低数据库效率

以上的五个事务隔离级别都是在Connection类中定义的静态常量,使用setTransacti

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值