作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服
Hibernate核心类用法-使用Transaction管理事务

Custom Tab

一个典型的事务应该使用下面的形式 在创建完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进行条件查询


转载自:http://blog.chinaunix.net/uid-26284395-id-3049162.html

Home