Hibernate核心类用法-使用Transaction管理事务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate核心类用法-使用Transaction管理事务相关的知识,希望对你有一定的参考价值。

一个典型的事务应该使用下面的形式 在创建完Session对象后即使用beginTransaction()启动事务 从此开始直到commit()之间的代码 都会处于同一个事务中 这两个函数之间所有的数据库代码都会在commit()时一次性提交 在提交时 如果某一句代码执行出现异常 就会回滚这一次事物之间的所有执行代码

 

  1. public User getUser(String username) throws HibernateException {
  2.         Session session = null;
  3.         Transaction tx = null;
  4.         User user = null;
  5.         try {
  6.             session = HibernateSessionFactory.currentSession();
  7.             tx = session.beginTransaction();
  8.             Query query = session.createQuery("from User where username=?");
  9.             query.setString(0, username.trim());
  10.             user = (User)query.uniqueResult();
  11.             query = null;
  12.             tx.commit ();
  13.         }catch(HibernateException e){
  14.             throw e;
  15.         }finally{
  16.             if (tx!=null) {
  17.                 tx.rollback();
  18.             }
  19.             HibernateSessionFactory.closeSession();
  20.         }
  21.         return user;
  22.     }

 

如果Session抛出异常 事务必须回滚 Session也会被废弃 在异常发生后 Session的内部状态可能会与数据库失去同步

 

除了这些  Hibernate的核心类操作 还有

使用Session对数据库的操作

使用Query进行HQL查询

使用Criteria进行条件查询

以上是关于Hibernate核心类用法-使用Transaction管理事务的主要内容,如果未能解决你的问题,请参考以下文章

5 -- Hibernate的基本用法 --6 深入Hibernate映射

5 -- Hibernate的基本用法 --5 1 持久化类的要求

Hibernate工具类_抽取重复核心代码

Hibernate中的五大核心类和接口

5 -- Hibernate的基本用法 --1 2 基本映射方式

Hibernate简单用法解析