zoukankan      html  css  js  c++  java
  • 使用 Hibernate 完成 HibernateUtils 类 (适用于单独使用Hibernate或Struts+Hibernate)

    package com.istc.Utilities;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.springframework.stereotype.Repository;
    
    import javax.annotation.Resource;
    import java.io.File;
    
    /**
     * Created by lurui on 2017/2/3 0003.
     * Hibernate版本为5.2.7Final
     */
    public class HibernateUtils {
        @Resource
        private static SessionFactory sessionFactory;
        private static Session session;
    
        private HibernateUtils(){
        }
    
    //    交给Spring管理后, 不需要进行hibernate的sessionFactory的管理
    //    否则用一下的代码对hibernate进行初始化
        static {
            Configuration cfg = new Configuration().configure(new File("src\com.istc.config\hibernate.cfg.xml"));
            sessionFactory = cfg.buildSessionFactory();
        }
    
        /**
         * 获取数据库Session对象
         */
        public static Session getSession(){
            //如果当前线程有session则返回该session
            //如果没有则创建,且自动关闭session,必须要代码中显式关闭session
            return sessionFactory.getCurrentSession();
        }
    
        /**
         * 关闭数据库Session对象
         */
        public static void closeSession(){
            if (session != null && session.isOpen())
                session.close();
        }
    
        /***
         * 关闭传入的数据库Session对象
         */
        public static void closeSession(Session session){
            if (session != null && session.isOpen())
                session.close();
        }
    
        /**
         * 关闭整个hibernate的sessionFactory
         */
        public static void close(){
            if(sessionFactory !=null && sessionFactory.isOpen())
                sessionFactory.close();
        }
    }
  • 相关阅读:
    Python调用sqlAlchemy
    Docker容器管理及代码调用
    Spring设置动态定时任务
    多数据源实现读写分离
    Spring整合EHCache框架
    springBoot整合Redis
    初探Mybaties整合分页插件PageHelper(1)
    流程控制,循环结构,for,while循环
    变量,常量,格式化输入输出,运算符
    编程语言介绍,变量介绍
  • 原文地址:https://www.cnblogs.com/luruiyuan/p/6417356.html
Copyright © 2011-2022 走看看