hibernate--9.事务

本文深入探讨Hibernate中的事务管理,包括事务的基本概念、特性和不同隔离级别的设置方法,并提供了具体的代码示例。此外还介绍了如何使用ThreadLocal绑定Session,以便更好地进行资源管理和异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1      事务相关概念

1.1        什么是事务

      

 

1.2        事务特性

      

 

1.3        不考虑隔离性(并发问题)

 

1.4        设置事务隔离级别—了解

       mysql默认隔离级别 repeatable read

 

 

2      Hibernate事务操作

2.1        概述

 

2.2        事务代码规范写法

 代码结构

   

 //事务规范写法
   @Test
   public void testTx() {
      SessionFactorysessionFactory = null;
      Sessionsession = null;
      Transactiontx = null;     
      try {
         sessionFactory= HibernateUtils.getSessionFactory();
         session= sessionFactory.openSession();
         tx= session.beginTransaction();
        
         Useruser = newUser();
         user.setUsername("老兰");
         user.setPassword("12369");
         user.setAddress("攀枝花");
        
         session.save(user);
        
         int i = 10/0;
         tx.commit();
      }catch(Exception e) {
         e.printStackTrace();
         tx.rollback();
      }finally{
         session.close();
         sessionFactory.close();
      }
   }

2.3        Hibernate绑定session

1 session类似于jdbc的connection,之前web阶段学过 ThreadLocal

 

2 帮实现与本地线程绑定session

 

3 获取与本地线程session

 

(1)在hibernate核心配置文件中配置

 

<!-- 在hibernate核心配置文件中配置 -->
      <property name="hibernate.current_session_context_class">thread</property>


(2)hibernateUtils

调用sessionFactory里面的方法得到

 

4 获取与本地线程绑定session时候,关闭session报错,不需要手动关闭了

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值