博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate中3个重要的类 Configuration SessionFactory Session
阅读量:6532 次
发布时间:2019-06-24

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

配置类Configuration

主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时,配置文件取读底层的配置信息,基本包括数据库驱动,url、username、password、dialect、show_sql、format_sql、mapping映射文件等等

配置文件一般放在src目录下

demo:

com.mysql.jdbc.Driver
root
root
jdbc:mysql://localhost:3306/helloworld
org.hibernate.dialect.MySQLDialect
true
true

 

 

会话工厂类SessionFactory

会话工厂是生成Session的工厂,保存了当前数据库中所有的映射关系,可能只有一个可选的二级缓存,线程安全。它是一个重量级对象,消耗大量系统资源

生成SessionFactory

Configuration cfg=new Configuration().configure();SessionFactory sessionFactory=cfg.bulidSessionFactory();

可以将生成的SessionFactory对象封装起来,后面使用的时候直接使用getter方法调用,减少系统资源的损耗。

 

Session会话类

这个Session不是JSP中的Session内置对象了,它是会话类,由SessionFactory创建。是数据库持久化操作的核心,负责hibernate的所有持久化操作,通过它执行数据库增删改查等操作。会话类不是线程安全,不要多会话共享一个Session。

创建session

Session session=sessionFactory.openSession();

获取会话中的Session

private final ThreadLocal
threadLocal=new ThreadLocal
(); Session session=(Session) threadLocal.get();

所以获取Session的方法

public  Session getSession() throws HibernateException{   Session session=(Session)threadLocal.get();   if(session==null||!session.isOpen()){       session=(sessionFactory!=null)?sessionFactory.openSession():null;       threadLocal.set(session);   }   return session;}

 

转载地址:http://unqbo.baihongyu.com/

你可能感兴趣的文章
洛谷.4180.[模板]次小生成树Tree(Kruskal LCA 倍增)
查看>>
TCL函数“参数自动补全” 与 “help 信息显示”
查看>>
POJ1050To the Max
查看>>
汇编基础--标识符、标号、伪指令和指令
查看>>
Linux软中断、tasklet和工作队列
查看>>
如何解决ORA-28002 the password will expire within 7 days问题(密码快过期)
查看>>
Asp.Net Core 轻松学-利用日志监视进行服务遥测
查看>>
LightSwitch社区资源搜集
查看>>
Android通讯录查询篇--ContactsContract.Data 二(续)
查看>>
IT人的自我导向型学习:开篇杂谈
查看>>
[原创]BizTalk动手实验系列目录
查看>>
HDU 4611Balls Rearrangement(思维)
查看>>
[LeetCode] Majority Element II
查看>>
minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
查看>>
我的Dll(动态链接库)学习笔记(转)
查看>>
应用程序域
查看>>
有向图的拓扑排序算法JAVA实现
查看>>
HTML页面跳转的5种方法
查看>>
李洪强-C语言5-函数
查看>>
开源监控利器grafana
查看>>