HibernateSessionFactory==session工厂类
来源:互联网 发布:鬼子来了被禁 知乎 编辑:程序博客网 时间:2024/06/06 05:04
package cn.et.hibernate;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;/** * Configures and provides access to Hibernate sessions, tied to the * current thread of execution. Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html }. */public class HibernateSessionFactory { /** * Location of hibernate.cfg.xml file. * Location should be on the classpath as Hibernate uses * #resourceAsStream style lookup for its configuration file. * The default classpath location of the hibernate config file is * in the default package. Use #setConfigFile() to update * the location of the configuration file for the current session. *///指定hibernate.cfg.xml的核心配置文件 private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION;static { try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();} } private HibernateSessionFactory() { }/** * Returns the ThreadLocal Session instance. Lazy initialize * the <code>SessionFactory</code> if needed. * * @return Session * @throws HibernateException */ 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; }/** * Rebuild hibernate session factory * */public static void rebuildSessionFactory() {try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}/** * Close the single hibernate session instance. * * @throws HibernateException */ public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } }/** * return session factory * */public static org.hibernate.SessionFactory getSessionFactory() {return sessionFactory;}/** * return session factory * *session factory will be rebuilded in the next call */public static void setConfigFile(String configFile) {HibernateSessionFactory.configFile = configFile;sessionFactory = null;}/** * return hibernate configuration * */public static Configuration getConfiguration() {return configuration;}}
阅读全文
0 0
- HibernateSessionFactory==session工厂类
- Hibernate中的session工具类——HibernateSessionFactory.java
- HibernateSessionFactory类中Session对象的创建步骤
- HibernateSessionFactory(工具类)
- 创建HibernateSessionFactory工具类
- eclispe建立HibernateSessionFactory类
- HibernateSessionFactory
- HibernateSessionFactory
- HibernateSessionFactory
- HibernateSessionFactory
- HibernateSessionFactory
- HibernateSessionFactory
- hibernatesessionfactory
- HibernateSessionFactory
- HibernateSessionFactory创建的Session是否单例
- HibernateSessionFactory创建Session是否单例
- HibernateSessionFactory创建的Session是否单例(转)
- 如何理解Hibernate中的HibernateSessionFactory类
- 实用类介绍3
- activeMQ实践(四)--大型系统的最佳实现之集群
- 正则匹配指定位置数字
- PHP下载文件函数封装及下载大文件解决方案
- LintCode 第366题 斐波纳契数列 【枚举法】
- HibernateSessionFactory==session工厂类
- jwplayer 初始化设置项
- servlet的四种响应
- java 获取本月最后一天,明天,昨天
- 3.3.2 查询——Criteria
- linux中shell,awk,sed截取字符串方法总结 Shell 第一种: ${parameter%word} 最小限度从后面截掉word ${parameter%%word} 最大限度从后面
- 数据库中date类型
- Django 时间比本地实际时间慢8小时
- WebView加载H5