首页 > Web开发 > 详细

Hibernate的事务

时间:2019-11-10 10:19:24      阅读:75      评论:0      收藏:0      [点我收藏+]

1、数据库的封锁(https://www.cnblogs.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();//游离状态
        }

技术分享图片

 

 

 

Hibernate的事务

原文:https://www.cnblogs.com/zhai1997/p/11828931.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!