Hibernate的五个核心API
来源:互联网 发布:java spring 拦截器 编辑:程序博客网 时间:2024/05/20 00:49
所有的Hibernate应用中都会访问Hibernate的5个核心接口。通过这些接口,不仅可以存储和获得持久对象,并且能够进行事务控制。
Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象。
SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象。
Session接口:负责保存、更新、删除、加载和查询对象。
Transaction接口:管理事务。
- Query和Criteria接口:执行数据库查询。
1.Configuration 接口
Configuration 接口的作用是对Hibernate 进行配置,以及对它进行启动。在Hibernate 的启动过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。虽然Configuration 接口在整个Hibernate 项目中只扮演着一个很小的角色,但它是启动hibernate 时所遇到的每一个对象。
2. SessionFactory 接口
一个设计模式-工厂模式,用户程序从工厂类SessionFactory中取得Session 的实例。SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是要操作多个数据库时,那必须为每个数据库指定一个SessionFactory。SessionFactory在Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。
3.Session 接口
Session 接口对于hibernate 开发人员来说是一个最重要的接口。然而在Hibernate 中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session 对象,如果Session 的开销太大,会给系统带来不良影响。但值得注意的是Session 对象是非线程安全的,因此在设计中,最好是一个线程只创建一个Session对象。
在Hibernate 的设计者的头脑中,是将session看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,诸如存储持久对象至数据库,以及从数据库从获得它们。注意,Hibernate 的session不同于JSP应用中的HttpSession。
4.Transaction接口
Transaction接口是Hibernate的数据库事务接口,它对底层的事务接口做了封装,底层事务接口包括:JDBC API、JTA(Java Transaction API)、CORBA(Common Object Requet Broker Architecture)API
Hibernate应用可通过一致的Transaction接口来声明事务边界,这有助于应用在不同的环境容器中移植。尽管应用也可以绕过Transaction接口,直接访问底层的事务接口,这种方法不值得推荐,因为它不利于应用在不同的环境移植。
5.Query 和Criteria接口
Query和Criteria接口是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。Query实例包装了一个HQL查询语句,HQL查询语句和SQL查询语句有些相似,但HQL查询语句是面向对象的,它引用类句及类的属性句,而不是表句及表的字段句。Criteria接口完全封装了基于字符串的查询语句,比Query接口更加面向对象,Criteria接口擅长执行动态查询。
Session接口的find()方法也具有数据查询功能,但它只是执行一些简单的HQL查询语句的快捷方法,它的功能远没有Query接口强大。
- Hibernate的五个核心API
- hibernate的五个核心接口
- Hibernate的五个核心接口
- hibernate的五个核心接口
- Hibernate 核心的API
- Hibernate的核心API
- Hibernate的五个核心接口介绍
- Hibernate的五个核心接口介绍
- Hibernate五个核心接口的初步了解
- 5.Hibernate核心的API
- Hibernate核心API的详解
- hibernate中的五个核心接口
- Hibernate核心API(理解)
- Hibernate核心API
- Hibernate:核心API
- Hibernate核心API
- Hibernate核心API
- hibernate核心API简介
- mysql设置用户权限
- Scrapy爬虫(四):imdb.cn爬虫实例
- AWS Lambda: 云计算领域的MapReduce
- scala 学习(十二)——继承
- iOS常见问题笔记总结这是本人开发中遇见的一些常见问题处理方法的总结笔记,包括http访问配置、Alcatraz插件安装、最新cocoapod安装、真机运行出错等许多与参考笔记总结,希望对大家有所帮助
- Hibernate的五个核心API
- springMVC和struts2的区别
- 好的团队共同的行为模式
- 递归
- 自定义View之Switch
- 一行一步一花新:python-0
- Springboot配置aop
- Spring Boot
- Linux 同步机制:互斥量