首页 > Web开发 > 详细

封装hibernate中session(静态单例模式)

时间:2017-03-03 21:13:39      阅读:204      评论:0      收藏:0      [点我收藏+]
因为每次用增删改查时都需要用到session,直接做一个类,需要的时候只需要调用即可
package com.itnba.maya.model;

import org.hibernate.*;
import org.hibernate.cfg.*;

public class HibernateUtil {
    private static final SessionFactory factory =  BuilderFactory();
    private static final ThreadLocal<Session> thread=new ThreadLocal<Session>();
    
    private static SessionFactory BuilderFactory() {
        Configuration config=new Configuration().configure();
        return config.buildSessionFactory();
    }
    public static Session getSession(){
        Session session=thread.get();
        if(session==null){
            session=factory.openSession();
            thread.set(session);
        }
        return session;    
    }
    public static void closeSession(){
        Session session=thread.get();
        if(session!=null){
            session.close();
            thread.set(null);
        }
    }

}

调用这个类的方法

package com.itnba.maya.test;

import java.util.List;

import org.hibernate.*;

import com.itnba.maya.model.Fruit;
import com.itnba.maya.model.HibernateUtil;

public class BB {

    public static void main(String[] args) {
        Fruit data = new Fruit();
        data.setIds("s003");
        data.setName("芒果");
        data.setSource("不知道");
        data.setPrice(12.0);
        data.setNumbers(100);
        data.setImage("没有");
        
        Session session=null;
        try{
            session=HibernateUtil.getSession();
            session.beginTransaction();
            session.save(data);
            session.getTransaction().commit();
        }catch (Exception e) {
            session.getTransaction().rollback();
        }finally {
            HibernateUtil.closeSession();
        }    
    }

}

运行结果

技术分享

技术分享

 

 

 

封装hibernate中session(静态单例模式)

原文:http://www.cnblogs.com/hq233/p/6498157.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!