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

04.Hibernate常用的接口和类---SessionFactory类和作用的更多相关文章

  1. 07.Hibernate常用的接口和类---Session接口☆☆☆☆☆

    一.特点 Session是在Hibernate中使用最频繁的接口.也被称之为持久化管理器.它提供了和持久化有关的操作,比如添加.修改.删除.加载和查询实体对象 Session 是应用程序与数据库之间交 ...

  2. 05.Hibernate常用的接口和类---Configuration类和作用

    Configuration作用: 加载Hibernate配置文件,可以获取SessionFactory对象 加载方式: 1.加载配置文件 Configuration configuration = n ...

  3. Hibernate常用接口

    Hibernate的接口类型 在了解了Hibernate的基本配置,映射文件后,道路已经铺平了.我们继续往前走.接下来,我们应该做的是了解Hibernate常用的接口,对Hibernate的工作方式进 ...

  4. Hibernate常用API以及使用说明

    1===>Hibernate常用的aip有Configuration,SessionFactory,Transaction,Session Configuration主要用于加载配置文件,使用 ...

  5. ( 转)Hibernate常用API

    http://blog.csdn.net/yerenyuan_pku/article/details/65103203 可在度娘上摘抄如下文字: Hibernate的核心类和接口一共有6个,分别为:S ...

  6. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Hibernate 系列 04 - Hibernate 配置相关的类

    引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...

  8. 写出Hibernate中核心接口/类的名称,并描述他们各自的责任?

    Hibernate的核心接口一共有5个,分别为:Session.SessionFactory.Transaction.Query和 Configuration.这5个核心接口在任何开发中都会用到.通过 ...

  9. JavaWeb学习之JDBC API中常用的接口和类

    JDBC API中包含四个常用的接口和一个类分别是: 1.Connection接口 2.Statement接口 3.PreparedStatement接口 4.ResultSet接口 5.Driver ...

随机推荐

  1. C/C++ 字符、字符串转十六进制(支持中文字符串转换)

    #include <string> // std::string #include <sstream> // std::stringstream /** * #purpose ...

  2. Linux g++

    Usage: g++ [options] file...Options:  -pass-exit-codes         Exit with highest error code from a p ...

  3. Flink on YARN(下):常见问题与排查思路

    Flink 支持 Standalone 独立部署和 YARN.Kubernetes.Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛.Flink 社区将推出 Flink ...

  4. 0704 Process继承实现多进程、Pool进程池,进程间通过队列通信,Pool实现多进程实现复制文件

    通过继承的方式,实现Process多进程 from multiprocessing import Process import time class MyNewProcess(Process): de ...

  5. 牛客多校第五场 A digits 2 签到

    题意: 给定一个n,输出一个数,要求这个数所有位之和整除n,并且这个数也整除n,并且位数不许多于1e4 题解: 把这个数n输出n遍. #include<iostream> using na ...

  6. hdu多校第三场 1007 (hdu6609) Find the answer 线段树

    题意: 给定一组数,共n个,第i次把第i个数扔进来,要求你删掉前i-1个数中的一些(不许删掉刚加进来这个数),使得前i个数相加的和小于m.问你对于每个i,最少需要删掉几个数字. 题解: 肯定是优先删大 ...

  7. AutoMapper Profile用法

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using AutoMappe ...

  8. Eclipse Unable to install breakpoint in XXX 解决办法

    Debug 时偶尔会出现:Eclipse Unable to install breakpoint in XXX 情况一: 清除所有断点就行了,原因是断点打到注释上了. breakpoint 窗口: ...

  9. 2019-7-1-Roslyn-让编译时候-Message-内容默认输出

    title author date CreateTime categories Roslyn 让编译时候 Message 内容默认输出 lindexi 2019-07-01 14:16:59 +080 ...

  10. C3P0连接池参数配置

    <!--acquireIncrement:链接用完了自动增量3个. --> <property name="acquireIncrement">3</ ...