`
jaesonchen
  • 浏览: 311509 次
  • 来自: ...
社区版块
存档分类
最新评论

hibernate的SessionFactory工具类

 
阅读更多
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateSessionFactory {

	private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
	private static org.hibernate.SessionFactory sessionFactory;
	private static Configuration configuration = new Configuration();
	private static ServiceRegistry serviceRegistry; 

	static {
    		try {
			configuration.configure();
			serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
			sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		} catch (Exception e) {
			System.err.println("%%%% Error Creating SessionFactory %%%%");
			e.printStackTrace();
		}
	}
	private HibernateSessionFactory() { }
	
	public static Session getSession() throws HibernateException {
        	Session session = (Session) threadLocal.get();

		if (session == null || !session.isOpen()) {
			if (sessionFactory == null) {
				rebuildSessionFactory();
			}
			session = (sessionFactory != null) ? sessionFactory.openSession() : null;
			threadLocal.set(session);
		}

        	return session;
	}

	public static void rebuildSessionFactory() {
		try {
			configuration.configure();
			serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
			sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		} catch (Exception e) {
			System.err.println("%%%% Error Creating SessionFactory %%%%");
			e.printStackTrace();
		}
	}

	public static void closeSession() throws HibernateException {
        	Session session = (Session) threadLocal.get();
        	threadLocal.set(null);

        	if (session != null) {
            		session.close();
        	}
    	}
	public static org.hibernate.SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public static Configuration getConfiguration() {
		return configuration;
	}
}

 

 

分享到:
评论

相关推荐

    HibernateSessionFactory.java

    HibernateSessionFactory.java

    使用 HibernateSessionFactory 类

    在`HibernateSessionFactory.java`这个文件中,我们可能看到对上述过程的封装,例如创建`SessionFactory`的静态方法,以及提供会话的获取和关闭功能。这样的封装有助于代码的整洁和复用。 在实际应用中,`...

    HibernateSessionFactory.java Hibernate使用的整合的工具文件

    Session s= HibernateSessionFactory.getSession(); 就是Hibernate的工具java类

    hibernate的大部分的工具类

    在这个“hibernate的大部分的工具类”压缩包中,我们很可能会找到一系列帮助简化Hibernate操作的实用工具类。这些工具类通常包括对数据操作的辅助方法、空值检查、分页处理以及HQL查询的通用分页功能。 首先,让...

    15hibernate_day04_pm_v1.zip_K.

    生成HibernateSessionFactory工具类(HibernateUtil) ===利用Myeclipse根据表生成实体类和映射文件=== g.进入DB Browser窗口,找到数据表 h.数据表右键,选择Hibernate reverse Engin... i.选择要生成的文件hbm....

    新Hibernate SessionFactory().getCurrentSession()猫腻

    4. **配置与初始化**:SessionFactory的创建通常在应用启动时进行,需要读取Hibernate配置文件(如hibernate.cfg.xml)并加载实体类信息。正确配置SessionFactory是使用getCurrentSession()的前提。 5. **异常处理*...

    Hibernate工具类

    `HibernateUtil`工具类就是对Hibernate框架功能的一种封装,简化了对数据库的操作。 在`HibernateUtil`工具类中,常见的方法有以下几类: 1. **初始化SessionFactory**: SessionFactory是Hibernate的核心组件,它...

    spring配置sessionFactory(spring3.2.3+hibernate4.2.2)

    本文将详细讲解如何在Spring 3.2.3版本中配置SessionFactory,以便整合Hibernate 4.2.2,实现对数据库操作的高效管理。SessionFactory是Hibernate的核心组件,它负责创建Session对象,而Session则是与数据库交互的...

    hibernate工具类

    hibernate开发的工具类,封装的sessionFactory,session等

    封装了一个Hibernate增删改查的工具类

    本篇将详细介绍一个基于Hibernate封装的增删改查工具类,该工具类整合了util、comm.util以及beanutils等库,旨在提高开发效率,降低代码复杂度,方便开发者快速地获取session和sessionFactory。 首先,让我们理解...

    Eclipse plugin (hibernate生成工具)

    通过Hibernate生成工具,开发者可以快速地自动生成与数据库表对应的Java实体类、配置文件以及DAO层代码,极大地提高了开发效率。 安装该插件的过程非常简单。首先,你需要将压缩包解压,确保得到三个文件夹。这些...

    hibernate常用方法集合

    `HibernateSessionFactory` 类是Hibernate应用中常见的一个工具类,用于管理和提供与当前线程相关的Session实例。让我们详细了解一下`HibernateSessionFactory`类中的关键方法和其背后的原理。 1. **配置和初始化...

    hibernate 开发工具包

    3. **SessionFactory和Session**:SessionFactory是Hibernate的顶级工厂类,它负责创建Session对象。Session是与数据库交互的接口,用于执行CRUD(创建、读取、更新、删除)操作。 4. **Query和Criteria API**:...

    hibernate工具

    本文将详细讲解Hibernate工具,包括`hibernate.cfg.xml`配置文件和`HibernateSessionFactory.java`类在Hibernate中的重要角色。 **1. hibernate.cfg.xml配置文件** `hibernate.cfg.xml`是Hibernate应用的基础配置...

    自动生成hibernate映射文件和实体类

    在完成上述步骤后,系统将自动生成 HibernateSessionFactory.java 和 hibernate.cfg.xml 文件。然后,在 MyEclipse Datebase Explorer 中选中所有表,点击右键,选择 Hibernate Reverse Enginnering,选中目录存放...

    SSH整合中 hibernate托管给Spring得到SessionFactory

    HibernateUtil类是一个工具类,提供了一个线程安全的方式来获取和关闭Session。这里使用了ThreadLocal变量来保证每个线程都有自己的Session实例,并且提供currentSession()和closeSession()方法来分别获取和关闭...

    用Hibernate自带的工具生成映射文件

    5. **整合到项目**:将生成的Java类和映射文件引入到你的项目中,配置Hibernate的SessionFactory,然后就可以在业务代码中使用这些实体类进行数据库操作了。 标签中的“源码”可能指的是在使用Hibernate Tools的...

    hibernate5.0.9

    《Hibernate 5.0.9:深度解析与应用实践》 Hibernate,作为Java领域中备受推崇的对象关系映射(ORM)框架,自诞生以来就极大地简化了数据库操作,提升了开发效率。本文将深入探讨Hibernate 5.0.9版本的核心特性、...

    Hibernate and JDBC

    ### Hibernate与JDBC:概述与对比 #### 一、JDBC简介 ...总结而言,Hibernate和JDBC都是Java应用与数据库交互的重要工具,各有优劣。选择使用哪个取决于具体项目的需求、团队的技术背景以及预期的性能目标等因素。

Global site tag (gtag.js) - Google Analytics