博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
04.Hibernate常用的接口和类---SessionFactory类和作用
阅读量:6546 次
发布时间:2019-06-24

本文共 1271 字,大约阅读时间需要 4 分钟。

是一个生成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();    }}

 

转载于:https://www.cnblogs.com/NEWHOM/p/6758262.html

你可能感兴趣的文章
Log4j_学习_03_自己动手封装log工具
查看>>
Redis的各项功能解决了哪些问题?
查看>>
FastAdmin 极速后台管理框架 1.0.0.20190301_beta
查看>>
Selenium2 WebDriver 启动Chrome, Firefox, IE 浏览器、设置profile&加载插件
查看>>
Python标准库01 正则表达式(re包)
查看>>
Hello,Java女神
查看>>
rpc远程调用开发
查看>>
复习-css控制文本字体属性
查看>>
学习设计模式——观察者模式
查看>>
什么是centos 的epel源
查看>>
删除LVM步骤
查看>>
Zookeeper客户端
查看>>
linux常用指令
查看>>
Oracle使用PLSQL连接时,导入导出问题
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>
一条复杂SQL实现思路
查看>>
我的友情链接
查看>>
android app 退出时提示确认
查看>>