Hibernate中5个核心接口知识点整理

 更新时间:2021年08月24日 08:04:07   作者:技术之家  
在本篇文章里小编给大家整理的是一篇关于Hibernate中5个核心接口知识点整理等内容,有兴趣的朋友们跟着学习参考下。

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个核心接口介绍内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java调用.dll文件的方法

    Java调用.dll文件的方法

    因为项目的需求,要在JAVA项目中调用Windows的Dll(动态链接库)文件,之前用Jni调用过C写的Dll文件,比较麻烦,这里不多说,网上也有很多这方面的文档。在网上找到一个开源的组件JNative,使用后感觉比较方便
    2013-04-04
  • 微服务springcloud 03.Eureka实现高可用的过程

    微服务springcloud 03.Eureka实现高可用的过程

    这篇文章主要介绍了微服务springcloud 03.Eureka实现高可用的相关资料,本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • java统计字符串中重复字符出现次数的方法

    java统计字符串中重复字符出现次数的方法

    这篇文章主要介绍了java统计字符串中重复字符出现次数的方法,涉及java针对字符串的遍历与判断相关操作技巧,需要的朋友可以参考下
    2016-08-08
  • Java中的3种输入方式实现解析

    Java中的3种输入方式实现解析

    这篇文章主要介绍了Java中的3种输入方式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 详解Spring Boot 添加JSP支持

    详解Spring Boot 添加JSP支持

    本篇文章主要介绍了详解Spring Boot 添加JSP支持,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java实现简单通讯录管理系统

    Java实现简单通讯录管理系统

    这篇文章主要为大家详细介绍了Java实现简单通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 如何利用Spring Boot 监控 SQL 运行情况

    如何利用Spring Boot 监控 SQL 运行情况

    这篇文章主要介绍了如何利用Spring Boot监控SQL运行情况,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • java开发hutool HttpUtil网络请求工具使用demo

    java开发hutool HttpUtil网络请求工具使用demo

    这篇文章主要为大家介绍了hutool之HttpUtil网络请求工具使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • SpringBoot中版本兼容性处理的实现示例

    SpringBoot中版本兼容性处理的实现示例

    SpringBoot版本兼容性问题通常是由于依赖库与SpringBoot版本不兼容引起的,本文主要介绍了SpringBoot中版本兼容性处理的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • MyBatis一级与二级缓存相关配置

    MyBatis一级与二级缓存相关配置

    mybatis-plus是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生,这篇文章带你了解Mybatis的一级和二级缓存
    2023-01-01

最新评论