Hibernate核心类用法-使用Transaction管理事务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate核心类用法-使用Transaction管理事务相关的知识,希望对你有一定的参考价值。
一个典型的事务应该使用下面的形式 在创建完Session对象后即使用beginTransaction()启动事务 从此开始直到commit()之间的代码 都会处于同一个事务中 这两个函数之间所有的数据库代码都会在commit()时一次性提交 在提交时 如果某一句代码执行出现异常 就会回滚这一次事物之间的所有执行代码
- public User getUser(String username) throws HibernateException {
- Session session = null;
- Transaction tx = null;
- User user = null;
- try {
- session = HibernateSessionFactory.currentSession();
- tx = session.beginTransaction();
- Query query = session.createQuery("from User where username=?");
- query.setString(0, username.trim());
- user = (User)query.uniqueResult();
- query = null;
- tx.commit ();
- }catch(HibernateException e){
- throw e;
- }finally{
- if (tx!=null) {
- tx.rollback();
- }
- HibernateSessionFactory.closeSession();
- }
- return user;
- }
如果Session抛出异常 事务必须回滚 Session也会被废弃 在异常发生后 Session的内部状态可能会与数据库失去同步
除了这些 Hibernate的核心类操作 还有
使用Session对数据库的操作
使用Query进行HQL查询
使用Criteria进行条件查询
以上是关于Hibernate核心类用法-使用Transaction管理事务的主要内容,如果未能解决你的问题,请参考以下文章
5 -- Hibernate的基本用法 --6 深入Hibernate映射
5 -- Hibernate的基本用法 --5 1 持久化类的要求