当前位置:首页>开发>正文

hibernate的核心类有那些 hibernate有哪些核心接口?每个接口的作用是什么?

2023-07-04 01:35:59 互联网 未知 开发

 hibernate的核心类有那些 hibernate有哪些核心接口?每个接口的作用是什么?

hibernate的核心类有那些?

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。

(1)Configuration:用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。Configuration对象用于配置并且启动Hibernate。Hibernate应用通过Configuration实例来指定对象--关系映射文件的位置或者动态配置Hibernate的属性,然后创建SessionFactory实例。
(2)SessionFactory:初始化Hibernate,充当数据存储源的代理,创建Session对象。一个SessinFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。如果应用同时访问多个DB,怎需要为每个数据库创建一个单独的SessionFactory实例。
(3)Session:也被称为持久化管理器,对象级数据库操作。
特点:
1)不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。
2)Session实例是轻量级的,所谓轻量级,是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单位分配单独的Session实例。
3)通常将每一个Session实例和一个DB事务邦定,也就是说,每执行一个DB事务,都应该先创建一个新的Session实例,不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例占用的资源。
注:每个Session实例都有自己的缓存,这个Session实例的缓存只能被当前的工作单元访问。
(4)Query:执行数据库查询操作。要使用HQL(HibernateQueryLanguage)查询语句,HQL查询语句是面向对象的,它引用类名及类的属性名。
(5)Transaction:用于管理操作事务。它对底层的事务接口做了封装,底层事务接口包括:JDBC API、JTA(JavaTransactionAPI)、CORBA(CommonObjectRequestBroker Architecture)API。
3.Hibernate的5个核心类或接口:
(1)Configuration:用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。Configuration对象用于配置并且启动Hibernate。Hibernate应用通过Configuration实例来指定对象--关系映射文件的位置或者动态配置Hibernate的属性,然后创建SessionFactory实例。
(2)SessionFactory:初始化Hibernate,充当数据存储源的代理,创建Session对象。一个SessinFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。如果应用同时访问多个DB,怎需要为每个数据库创建一个单独的SessionFactory实例。
(3)Session:也被称为持久化管理器,对象级数据库操作。
特点:
1)不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。
2)Session实例是轻量级的,所谓轻量级,是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单位分配单独的Session实例。
3)通常将每一个Session实例和一个DB事务邦定,也就是说,每执行一个DB事务,都应该先创建一个新的Session实例,不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例占用的资源。
注:每个Session实例都有自己的缓存,这个Session实例的缓存只能被当前的工作单元访问。
(4)Query:执行数据库查询操作。要使用HQL(HibernateQueryLanguage)查询语句,HQL查询语句是面向对象的,它引用类名及类的属性名。
(5)Transaction:用于管理操作事务。它对底层的事务接口做了封装,底层事务接口包括:JDBC API、JTA(JavaTransactionAPI)、CORBA(CommonObjectRequestBroker Architecture)API。

二、工作原理
1.Hibernate 的初始化.
读取Hibernate 的配置信息-〉创建Session Factory
1)创建Configeration类的实例。
它的构造方法:将配置信息(Hibernate config.xml)读入到内存。
一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。
2)创建SessionFactory实例
把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。
SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。
缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。
SessionFactory的缓存中:Hibernate 配置信息。OR映射元数据。
缓存-大:重量级对象 小:轻量级对象
3)调用SessionFactory创建Session的方法
1】用户自行提供JDBC连接。
Connection con=dataSource.getConnection()
Session s=sessionFactory.openSession(con)
2】让SessionFactory提供连接
Session s=sessionFactory.openSession()
4)通过Session 接口提供的各种方法来操纵数据库访问

hibernate有哪些核心接口?每个接口的作用是什么?

下面对这五的核心接口分别加以介绍。

  ·Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流、读取配置,然后创建SessionFactory对象:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象,包含了很多常见的SQL语句,可以为每个数据库指定一个SessionFactory。

  ·Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象Hibernate的核心接口一共有5个,分别为:Session、SessionFactory。需要注意的是SessionFactory并不是轻量级的、Transaction。通过这些接口,不仅可以对持久化对象进行存取、Query和Configuration,因为一般情况下。这5个核心接口在任何开发中都会用到,而以后会将HttpSesion对象称为用户session。

  ·SessionFactory接口。这里用到了工厂模式。),还能够进行事务控制。在Hibernate的启动的过程中。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时。

  ·Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式,其实指的是Hibernate中的session,Configuration类的实例首先定位映射文档位置,当需要操作多个数据库时:Transaction接口负责事务相关的操作。它是可选的,可发人员也可以设计编写自己的底层事务处理代码。

  ·Transaction接口,一个项目通常只需要一个SessionFactory就够

Hibernate 有哪 5 个核心接口

以下5个核心接口:
Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象。 
SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象。  
Session接口:负责保存、更新、删除、加载和查询对象。 
Transaction接口:管理事务。Query和Criteria接口:执行数据库查询。

最新文章