Hibernate是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,同时Hibernate作为持久层中间件,它的具体实现对与上层调用是透明的,即上层通过接口来调用Hibernate的具体实现,所以对于入门级别的讨论来说,自然应该先从接口开始了。
1.Configuration核心接口
在Hibernate应用中通过Configuration的实例来指定对象-关系映射文件或通过Configuration动态配置Hibernate的属性,然后通过Configuration来创建相应的SessionFactory实例。所以Configuration主要作用是配置并启动Hibernate。
2.SessionFactory核心接口
在Hibernate应用中一个SessionFactory对应一个数据源,它是个重量级对象(注意:不可随意生成多个实例,对于一般的单数据库应用来说,只需要一个SessionFactory就足够了,当然如果有多个数据库的话,还是需要为每个数据库生成对应的SessionFactory);它是线程安全的,同一个实例可以被应用中的多个线程共享;同时SessionFactory存放了大量预定义的SQL语句以及映射元数据,则需要很大的缓存了,也需要一定的CPU时间来计算生成。
注:通过Mapping文件的定义,很多SQL语句就已经确定了,只需要动态生成一次就可以了,提高持久化的效率。
3.Session核心接口
Session接口是Hibernate应用中使用最广泛的接口了,它是持久化管理器,提供添加、更新、删除、加载、查询对象。Session不是线程安全的,所以应避免多个线程共享同一个Session实例。Session是轻量级对象,它的创建和销毁不需要太多资源,这意味着在应用中可以经常创建和销毁Session对象。
Session有一个缓存,称之为Hibernate的一级缓存,它存放当前工作单元加载的持久化对象,每个Session都有自己的缓存,缓存中的对象只能被当前工作单元访问。
注:Session实例是从SessionFactory中可以获得。
4.Transaction核心接口
Transaction是Hibernate的数据库事务接口,它对底层道德事务接口进行了封装,底层事务接口包括:
JDBC API
JTA(Java Transaction API)
CORBA(Common Object Requet Broker Architecture) API
Hibernate应用可以通过一致Transaction接口来声明事务边界,这有助于应用可以在不同的环境或容器中移植。具体的事务实现使用在Hibernate.properties中进行指定。
5.Query和Criteria核心接口
这两个是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。Query实例包装了一个HQL(Hibernate Query Language)来查询。Criteria接口完全封装了基于字符串形式的查询语句,比Query更面向对象,Criteria更擅长执行动态查询。
总结
1、Configuration:配置hibernate,创建SessionFactory对象。
2、SessionFactory:初始化hibernate,充当数据存储源的代理,创建Session对象。
3、Session:负责保存,更新,删除。加载和查询对象。
4、Transaction:管理事务。
5、Query和Criteria:执行数据库的查询。
到此这篇关于Hibernate中5个核心接口知识点整理的文章就介绍到这了,更多相关关于Hibernate中5个核心接口介绍内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!
- 本文固定链接: https://zxbcw.cn/post/220512/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)