专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Hibernate的事务(封锁、隔离级别、事务处理)

1、数据库的封锁(https://tech.souyunku.com/zhai1997/p/11710082.html):

封锁是实现并发控制的重要技术。

read uncommitted : 读取尚未提交的数据

read committed:读取已经提交的数据 ,可以解决脏读 ,oracle默认的级别。

repeatable read:重读读取,可以解决脏读 和 不可重复读 ,mysql默认的级别。

serializable:串行化,可以解决脏读不可重复读和丢失修改,相当于锁表,会使得数据库的效率极低。

2、Hibernate操作数据库时的隔离级别:

1:读未提交

2:读已提交

4:可重复读

8:串行化

隔离级别的设置:

 <property name="hibernate.connection.isolation">4</property>

3、事务处理:

在事务处理的过程中,最关键的问题是要保证dao层和service层操作的是同一个session对象,在Hibernate中,我们只需要调用相应的方法。

注意事项:

(1)不需要手动关闭事务,因为调用该方法时,提交事务后会自动关闭。

(2)在调用方法之前必须先配置:

<!--指定session与当前线程绑定-->
        <property name="hibernate.current_session_context_class">thread</property>
public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Session session1=HibernateUtils.openSession();
            Session session2=HibernateUtils.openSession();
            System.out.println(session1==session2);
            Session session3=HibernateUtils.getCurrentSession();
            Session session4=HibernateUtils.getCurrentSession();
            System.out.println(session3==session4);
            transaction.commit();
            session.close();//游离状态
        }

96_1.png

文章永久链接:https://tech.souyunku.com/23159

未经允许不得转载:搜云库技术团队 » Hibernate的事务(封锁、隔离级别、事务处理)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们