hibernate之工具类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate之工具类相关的知识,希望对你有一定的参考价值。

package util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * Hibernate工具类
 * 作用: 获取session与关闭session
 * @author 尹涛
 *
 */
public class HibernateUtil {
    // 创建私有 静态 线程对象
    private static ThreadLocal<Session> TLSession = new ThreadLocal<Session>();
    // 定义私有 静态conguration对象
    private static Configuration configuration;
    // 定义 私有 静态 sessionfactory对象
    private static SessionFactory sessionFactory;
    
    // 静态域: 在使用该类时,默认加载内容
    static{
        try {
            // 读取解析hibernate.cfg.xml文件
            configuration = new Configuration().configure();
            // 解析*.hbm.xml文件
            sessionFactory = configuration.buildSessionFactory();
            
        } catch (Exception e) {
            System.out.println("初始化加载异常");
            e.printStackTrace();
        }
    }
    
    /**
     * 获取session对象
     * @return    session
     */
    public static Session currentSession(){
        // 获取当前线程中的session对象
        Session session = TLSession.get();
        // 验证session对象是否为空
        if (session == null) {
            // 使用工厂对象生产session对象
            session = sessionFactory.openSession();
            // 将session对象放入线程
            TLSession.set(session);
        }
        return session;
    }
    
    public static void closeSession(){
        // 获取当前线程中的session对象
        Session session = TLSession.get();
        // 清空线程中的session对象
        TLSession.set(null);
        // 验证session是否为空
        if (session != null) {
            // 关闭session对象
            session.close();
        }
    }
}

 

以上是关于hibernate之工具类的主要内容,如果未能解决你的问题,请参考以下文章

hibernate之初学增删改查

hibernate工具类

Hibernate工具类_抽取重复核心代码

elasticsearch代码片段,及工具类SearchEsUtil.java

hibernate之条件查询

hibernate之session使用