`

J2EE常用工具类—Hibernate操作

阅读更多
package cn.org.jshuwei.j2ee.util;

import java.io.Serializable;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
* 
* Hibernate操作的工具类
* 
* @author huwei(jshuwei.org.cn)
* @since 1.0
* 
*/
public class HbnUtil {
    private static SessionFactory sf;

    /**
     * 得到SessionFactory
     * 
     * @since 1.0
     * @return 返回SessionFactory
     */
    public static SessionFactory getSessionFactory() {
        if (sf == null || sf.isClosed()) {
            try {
                sf = new Configuration().configure().buildSessionFactory();
            } catch (HibernateException e) {
                e.printStackTrace();
            }
        }
        return sf;
    }

    /**
     * 得到Session
     * 
     * @since 1.0
     * @return 返回Session
     */
    public static Session getSession() {
        getSessionFactory();
        return sf.openSession();
    }

    /**
     * 释放SessionFactory
     * 
     * @since 1.0
     */
    public static void releaseSessionFactory() {
        if (sf != null && !sf.isClosed()) {
            sf.close();
        }
    }

    /**
     * 保存对象
     * 
     * @since 1.0
     * @param obj
     *            需要保存的对象
     */
    public static Serializable add(Object obj) {
        Session session = null;
        Serializable ret = null;
        try {
            session = getSession();
            session.beginTransaction();
            ret = session.save(obj);
            session.getTransaction().commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            if (session != null) {
                session.close();
            }
            releaseSessionFactory();
        }
        return ret;
    }

    /**
     * 删除对象
     * 
     * @since 1.0
     * @param obj
     *            需要删除的对象
     */
    public static void delete(Object obj) {
        Session session = null;
        try {
            session = getSession();
            session.beginTransaction();
            session.delete(obj);
            session.getTransaction().commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            if (session != null) {
                session.close();
            }
            releaseSessionFactory();
        }
    }

    /**
     * 更新对象
     * 
     * @since 1.0
     * @param obj
     *            需要更新的对象
     */
    public static void update(Object obj) {
        Session session = null;
        try {
            session = getSession();
            session.beginTransaction();
            session.update(obj);
            session.getTransaction().commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            if (session != null) {
                session.close();
            }
            releaseSessionFactory();
        }
    }

    /**
     * 查找对象
     * 
     * @since 1.0
     * @param clazz 需要查找的对象类型
     * @param id
     *            需要查找的对象的id
     */
    public static Object find(Class clazz,Serializable id) {
        Session session = null;
        Object obj=null;
        try {
            session = getSession();
            obj=session.get(clazz, id);
        } catch (HibernateException e) {
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close();
            }
            releaseSessionFactory();
        }
        return obj;
    }
}

 

分享到:
评论

相关推荐

    java常用工具类打包下载

    J2EE常用工具类—Hibernate操作 J2EE常用工具类—Cookie操作 J2EE常用工具类—数组操作 J2EE常用工具类—时间处理工具类 J2EE常用工具类—文件打包解包处理类 J2EE常用工具类——文件操作类 J2EE常用工具类...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...

    HaivOra4J2ee工具提供图片

    本工具主要提供了以下功能:  1、能通过表名、列名、列类型、表和列的注释等信息,自动生成PO类、Hibernate、VO类、struts+spring+hibernate的配置文件、Jsp文件、使用说明等文档,以实现对单表的增、删、改、查...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...

    haivDb4J2ee1.3

    它是基于java编写的j2ee代码自动生成工具暨数据库管理工具,运行于jdk1.5环境中,目前版本支持Oracle、mysql、mssql三种常用的数据库,以后会视情况扩充至其它种类的关系型数据库。它的功能类似于MyEclipse的自动...

    J2EE电子商务系统开发从入门到精通

    3.4.2 Hibernate API操作事务..... 60 3.5 OR映射..... 61 3.6 Middlegen工具..... 63 3.7 hbm2java工具..... 66 3.8 分页显示的实现..... 66 3.9 小结..... 67 第4章企业在线信息系统网站概述与架构设计...... 68 ...

    Hibernate+中文文档

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    hibernate3.2中文文档(chm格式)

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent ...

    HibernateAPI中文版.chm

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent ...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...

    web开发常用jar

    Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache ...

    Hibernate中文详细学习文档

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent ...

    Hibernate 中文 html 帮助文档

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent ...

    最全Hibernate 参考文档

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. JTA和Session的自动绑定 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 为...

Global site tag (gtag.js) - Google Analytics