Hibernate核心API
来源:互联网 发布:温度控制算法 编辑:程序博客网 时间:2024/05/20 01:45
1. SessionFactory
最开始的时候必须要先创建一个SessionFactory,这个就有点像一个数据库连接池一样,它是根据configuration文件来创建的,而它存在目的就是创建session。
2. Session
Session才是真正拿数据的通道,获取这个通道的方式有2个。
如果你调用openSession(),那么每次都会创建一个新的session,用完以后你必须调用session.close(),关掉session,下次调用的时候又会再创建一个。
而如果你使用getCurrentSession,那么如果没有就创建,已经有打开的,就直接使用那一个,不会创建新的。
注意一点,那就是无论哪种方式,一旦你commit了,那么下次调用都会创建新的。
为什么要区分呢?
需要说明一个关于" 事务"的问题。有时候你需要进行一连串的操作才叫一个事务的完成,比如你想存一个东西到一个表,再存一个log到日志表记录该操作,那么在这些操作全部完成之前,并不能提交。要不然你要是存了东西但是没有存日志就不行,或者你日志都存了,但其实根本没存数据,那么就要出错。所以最好的方式就是使用getCurrentSession,这样将2个操作都在这一个session上面,全部完成再提交,就能保证一致。
3. 那HIbernate是怎么去管理创建Session之类的呢?在hibernate.cfg.xml文件里面有一个current-session_context的配置,默认设置为thread,这样就会自动被管理,先去当前connection找,如果没有就创建,有就调用。还有一种是JTA。
4.JTA
假如你要做的操作依赖于多个数据库,而不是一个,就是所谓的分布式数据库,那么原来的只是针对一个数据的Connection就无法满足条件了。这个时候就需要有一个TransactionManager,由它来进行预处理,然后再将其弄成一个事务进行操作。
这个TransactionManager是由Application Server提供的支持,Tomcat不行,必须借助Spring,而JBoss和WebLogic可以。JTA就相当于有了TransactionManager之后的操作。
但是其实这种用法很少。
- Hibernate核心API(理解)
- Hibernate核心API
- Hibernate:核心API
- Hibernate 核心的API
- Hibernate核心API
- Hibernate核心API
- hibernate核心API简介
- Hibernate的核心API
- hibernate核心api
- Hibernate入门----核心API
- hibernate核心API介绍
- Hibernate核心API详解
- Hibernate 核心 api
- hibernate核心API
- Hibernate核心API
- hibernate核心api
- Hibernate核心API(Notes)
- JAVA SSH ----Hibernate核心API
- java中的抽象类与接口
- 创建自己盈利的网站
- Visual Studio统计有效代码行数
- Easy CD-DA Extractor v16.1.0.1 fixed exe & Activation by Vovan666
- 【thinkphp3.x】ThinkPHP/Common/common.php文件中某些函数的分析
- Hibernate核心API
- 异或的性质&应用
- 【thinkphp3.x】ThinkPHP/Lib/Core/Dispatcher.class.php文件分析
- 【thinkphp3.x】ThinkPHP/ThinkPHP.php文件分析
- 给SPYXX.exe添加新功能
- 补码综合理解
- page,request,session,application 四个域对象的使用区别
- 结束进程
- LeetCode: Combination Sum II