最近一直在做系统测试,检验功能,测试bug。发现一直都是用spring来管理配置hibernate依赖注入,来管理Hibernate事务。但是有的程序需要手动Main函数启动,而采用spring加载的话,就会触发很多类,影响性能,还有当spring里面写了触发器后,那么随着你的main函数运行,你的触发器也得到了启动,那么这个会造成多个进程开启了触发器。
当离开了spring管理时,发现Hibernate居然不知道怎么调用了,参考了网上一些大牛的文章,自己动手实现了,无需spring管理来进行Hibernate调用。
直接上代码:1.工具类,2.xml配置文件,3.实体类,注释方式 4.测试功能类
- package com.t.common.hibernate;
- import java.io.Serializable;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.Transaction;
- import org.hibernate.cfg.Configuration;
- public final class HibernateUtil {
- private static SessionFactory sessionFactory;
- private static ThreadLocal session = new ThreadLocal();
- public HibernateUtil(){
- }
- static {
- Configuration cfg = new Configuration();
- cfg.configure("hibernate.common.xml");
- sessionFactory = cfg.buildSessionFactory();
- }
- public static Session getThreadLocalSession(){
- Session s = (Session) session.get();
- if(s==null){
- s=getSession();
- session.set(s);
- }
- return s;
- }
- public static void closeSession(){
- Session s = (Session)session.get();
- if(s!=null){
- s.close();
- session.set(null); </