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开发RocketMQ消息中间件原理基础详解

    java开发RocketMQ消息中间件原理基础详解

    最近 RocketMQ 刚刚上生产环境,闲暇之时在这里做一些分享,主要目的是让初学者能快速上手RocketMQ,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • Java利用反射如何查找使用指定注解的类详解

    Java利用反射如何查找使用指定注解的类详解

    这篇文章主要给大家介绍了关于Java利用反射如何查找使用指定注解的类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • JavaWeb项目中springmvc和tomcat对静态文件的处理

    JavaWeb项目中springmvc和tomcat对静态文件的处理

    这篇文章主要介绍了JavaWeb项目中springmvc和tomcat对静态文件的处理 的相关资料,需要的朋友可以参考下
    2016-07-07
  • Spring IOC容器Bean注解创建对象组件扫描

    Spring IOC容器Bean注解创建对象组件扫描

    这篇文章主要为大家介绍了Spring IOC容器Bean注解创建对象组件扫描,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • mybatis中如何传递单个String类型的参数

    mybatis中如何传递单个String类型的参数

    这篇文章主要介绍了mybatis中如何传递单个String类型的参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java关于含有继承类的成员初始化过程讲解

    Java关于含有继承类的成员初始化过程讲解

    今天小编就为大家分享一篇Java关于含有继承类的成员初始化过程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • java怎么连接并访问activemq

    java怎么连接并访问activemq

    这篇文章主要介绍了java怎么连接并访问activemq,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Maven默认中央仓库(settings.xml 配置详解)

    Maven默认中央仓库(settings.xml 配置详解)

    这篇文章主要介绍了Maven默认中央仓库(settings.xml 配置详解),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • java客户端登陆服务器用户名验证

    java客户端登陆服务器用户名验证

    这篇文章主要为大家详细介绍了java客户端登陆服务器用户名验证的相关资料,需要的朋友可以参考下
    2016-05-05
  • Java中IOException异常解决方法

    Java中IOException异常解决方法

    这篇文章主要给大家介绍了关于Java中IOException异常解决的相关资料,IOException是Java中的一个受检查异常(Checked Exception),它是java.io包中定义的异常类之一,需要的朋友可以参考下
    2023-07-07

最新评论