• 04.Hibernate常用的接口和类---SessionFactory类和作用


    是一个生成Session的工厂类

    特点:

      1.由Configuration通过加载配置文件创建该对象。

    SessionFactory factory = config.buildSessionFactory();

      2.SessionFactory对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。同时,SessionFactory还负责维护Hibernate的二级缓存。

      3.一个SessionFactory实例对应一个数据库,应用从该对象获得Session实例。

      4.SessionFactory是线程安全的,意味着它的一个实例可以被应用的多个线程共享。

      5.SessionFactory是重量级的,意味着不能随意创建和销毁它的实例,如果只需要创建一个数据库对象,只需要创建一个SessionFactory实例,且在应用初始化的时候完成。

      6.SessionFactory需要一个较大的缓存,用来存放预定义的SQL语句及实体的映射信息,另外可以配置一个缓存插件,这个插件被称为Hibernate的二级缓存,被多个线程共享。

    总结:

      一般一个应用使用一个SessionFactory,最好是在应用启动时就完成初始化

    SessionFactory工具类:

    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    /**
     * SessionFactory工具类
     * @author NEWHOM
     *
     */
    public class HibernateUtils {
        private static final Configuration CONFIG;
        private static final SessionFactory FACTORY;
        
        static{
            //加载配置文件
            CONFIG = new Configuration().configure();
            
            //生成SessionFactory
            FACTORY = CONFIG.buildSessionFactory();
        }
        
        //获取Session对象
        public static Session openSession(){
            return FACTORY.openSession();
        }
        
        //获取线程的getCurrentSession对象
        public static Session getCurrentSession(){
            return FACTORY.getCurrentSession();
        }
    }
  • 相关阅读:
    javascript有用小技巧—实现分栏显示
    在Apk应用程序内,查找某个Activity。
    NodeJS系列~第一个小例子,实现了request.querystring功能
    IOS开发(objective-c)~开篇有理
    爱上MVC3~布局页的继承与扩展
    我心中的核心组件(可插拔的AOP)~第五回 消息组件
    基础才是重中之重~方法override详解
    数据结构 练习 20-查找 算法
    cocos2d-x适配多分辨率
    VS2010中使用CL快速 生成DLL的方法
  • 原文地址:https://www.cnblogs.com/NEWHOM/p/6758262.html
Copyright © 2020-2023  润新知