Hibernate 工具类
来源:互联网 发布:linux一键我的世界 编辑:程序博客网 时间:2024/05/29 13:12
package com.newer;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
/**
* HibernateSessionFactory 工具类 <br/>
* 此类用于获取 sessionFactory、session等
*/
public class HibernateSessionFactory {
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; //位置classPath里面:
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION;
//private static Configuration configuration = new Configuration(); //XML配置时使用
private static Configuration configuration = new AnnotationConfiguration(); //@注解配置时使用
static {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
/**
* 构造方法
*/
private HibernateSessionFactory() {
}
/**
* 获取Session的方法 <br/>
* session使用完后应 close()释放掉<br/>
* 因为每个session 都会带上一个数据库连接
* @return
*/
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(configFile);
sessionFactory = configuration.buildSessionFactory();
} 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();
}
}
/**
* 获取sessionFactory的方法
* @return
*/
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* 清空 sessionFactory 的方法
* @return
*/
public static void setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory = null;
}
/**
* 获取 configuration 的方法
* @return
*/
public static Configuration getConfiguration() {
return configuration;
}
}
- Hibernate工具类
- Hibernate工具类
- Hibernate工具类
- Hibernate 的工具类
- Hibernate工具类
- HIbernate工具类
- Hibernate工具类模版
- Hibernate 工具类
- hibernate的工具类
- Hibernate工具类
- Hibernate的工具类
- Hibernate工具类
- Hibernate的工具类
- hibernate分页工具类
- hibernate 操作工具类
- hibernate工具类
- Hibernate工具类
- hibernate连接工具类
- iphone妖机+黑机不能上网解决方案
- PHPUnit学习笔记(三)测试方法进阶
- Android学习笔记07:Handler的使用一
- Hibernate 通用的添加实体方法
- scanf与gets函数混用
- Hibernate 工具类
- windowsphone开发listbox滚到底
- tcpcopy安装及其测试
- PHPUnit学习笔记(四)断言详解
- Hibernate 使用须知
- 去掉a标签点击时的虚线边框
- ubuntu配置java环境详细过程
- 设计JavaScript API的五个建议
- CSS实现alt_title效果