Hibernate框架【一】——HIbernate框架介绍

这篇具有很好参考价值的文章主要介绍了Hibernate框架【一】——HIbernate框架介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

Hibernate框架【三】——基本映射——一对一映射
Hibernate框架【四】——基本映射——多对一和一对多映射
Hibernate框架【五】——基本映射——多对多映射



前言

Hibernate是一个开源的Java对象关系映射(ORM)框架,它提供了一种方便的方式将Java对象与关系型数据库进行映射和交互。通过Hibernate,开发人员可以使用面向对象的方式操作数据库,而不需要直接编写SQL查询语句


一、什么是HIbernate框架

Hibernate架构图

引用至W3C
Hibernate框架【一】——HIbernate框架介绍
Hibernate是一个开源的对象关系映射(ORM)框架,用于将Java对象映射到关系型数据库中的关系表。
它提供了一种面向对象的方式来操作数据库,简化了开发人员对数据库的访问和管理。

如何理解提供了一种面向对象的方式来操作数据库。

一方面:Hibernate可以将定义好的java类映射为数据库中的表,并将java类的实例化的对象,映射为对应表中的一行记录。
另一方面:使用Hibernate,开发人员可以直接操作对象,不需要编写复杂的SQL语句。通过对象的属性和方法来进行数据的读取、修改和删除等操作。

Hibernate提供的核心功能和特性

  1. ORM映射(可以将java对象与数据库表之间进行映射,实现对象和关系数据库之间的转换,支持各种映射策略和注解);

  2. 数据库查询(提供了一组丰富的API,用于执行数据库操作,包括插入、更新、删除、查询,还支持HQL和基于SQL的查询一级Criteria查询和原生SQL查询);

  3. 缓存机制(Hibernate内置了一级缓存和二级缓存机制,用于提供查询性能和减少数据库的访问。一级缓存是会话级别的缓存,保存了会话期间加载的实体对象。二级缓存是跨会话的缓存,可以在多个会话之间共享缓存数据);

  4. 事物管理(可以通过编程或声明式的方式管理数据库事物。支持标准的java事物API(JTA)和本地事物管理);

  5. 延迟加载(允许按需加载关联对象,提高查询性能。这意味着只有在需要访问关联对象时,才会从数据库中加载相应的数据。);

  6. 对象状态管理(通过跟踪对象的状态来管理对象的持久化。它提供了持久化、脱管和删除等状态之间的转换,使开发人员能够方便地操作对象。)

二、Hibernate框架的优点

  1. 使开发更加面向对象化:Hibernate提供了一个面向对象的编程模型,使开发人员可以使用面向对象的思想来操作数据库。
  2. 提高开发效率:Hibernate提供了许多强大的特性和工具:如自动生成数据库表结构,提供了公共的操作数据库的方法,让开发人员不用写SQL语句、缓存机制、事物管理。可以大大减少开发人员的工作量,提高开发效率。
  3. 可移植性:Hibernate可以在不同的数据库系统上运行,如Mysql、Oracle、SQL Server等,开发人员可以使用统一的API和语法,无需关系底层数据库的差异。

三、Hibernate框架的缺点

  1. 学习曲线较陡:Hibernate是一个复杂的框架,具有丰富的功能和概念,对于新手来说,学习和掌握Hibernate需要一定的时间和精力。
  2. 性能问题:尽管Hibernate提供了缓存和懒加载等优化机制,但是不正确配置或者过度使用HIbernate的功能可能会导致性能问题。自动生成的SQL查询语句可能不总是最优的,并且过多的查询和数据加载可能会影响性能。
  3. 复杂性和难以调试:Hibernate的复杂性可能导致难以调适和排查问题。在配置和映射关系方面的错误可能导致不明确的异常和行为。对于复杂的查询和关联关系,编写和优化 Hibernate 查询语句可能需要更高的技术水平。
  4. 于简单应用可能过于重量级:Hibernate 是一个功能强大的框架,适用于中大型应用程序,但对于简单的应用程序来说,可能会觉得过于笨重。在某些情况下,直接使用相对轻量级的 ORM框架更为合适。

需要注意的是:Hibernate 的优点远远超过了其缺点,并且许多缺点可以通过良好的配置和最佳实践来解决。它是一个成熟的 ORM 框架,被广泛使用,并且提供了许多有价值的功能和特性,可大大简化数据库操作和提高开发效率。

四、Hibernate、jpa、jdbc他们三者之间是什么关系

  1. jdbc:jdbc是Java提供的用于与关系型数据库进行交互的标准API,它提供了一组接口和类,使开发人员能够执行数据库的连接、查询、更新等操作。JDBC 需要开发人员手动编写 SQL 查询和处理数据库结果集,对于较低层次的数据库操作提供了灵活性。使开发人员能够执行数据库的连接、查询、更新等操作。JDBC 需要开发人员手动编写 SQL 查询和处理数据库结果集,对于较低层次的数据库操作提供了灵活性。
  2. JPA:JPA是Java持久化标准,定义了一组API和规范,提供了一种与数据库无关的方式来操作实体对象。JPA定义了实体、映射关系、查询语言和事物管理等方面的规范,使开发人员能够以面向对象的方式进行数据库的操作。
  3. Hibernate:Hibernate实现了JPA规范,同时还提供了一些额外的功能和特性。Hibernate封装了底层的JDBC操作,提供了更高层次的抽象,来简化开发人员对数据库的访问。通过HIbernate开发人员可以通过配置和注解来定义实体和映射关系,使用面向对象的方式进行数据库操作。

Hibernate 是 JPA 的实现之一,而 JPA 则是对数据库持久化操作的规范。JDBC 是底层的数据库连接和操作技术,Hibernate 和 JPA 则在 JDBC 的基础上提供了更高层次的抽象和便利性,使得开发人员能够以面向对象的方式进行数据库操作文章来源地址https://www.toymoban.com/news/detail-494553.html

到了这里,关于Hibernate框架【一】——HIbernate框架介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hibernate 配置文件(hibernate.cfg.xml、hbm.xml)

      目录 Hibernate.xml  1、数据库的基本信息。 2、集成 C3P0,设置数据库连接池信息。 3、Hibernate 基本信息。  4、注册实体关系映射文件。  实体关系映射文件 (实体类文件名.hbm.xml) 1、hibernate-mapping标签的属性 2、class标签的属性  2.1、dynamic-insert:动态添加 (默认为false)

    2023年04月08日
    浏览(41)
  • Hibernate(一)——入门

    在之前经常用到操作数据库的框架是Mybatis或者Mybatis-plus。 Hibernate在項目中用过,但没有深入的了解过,所以这次趁着假期把这个框架了解一下。 Hibernate就是一个 持久层 的 ORM 框架 什么是ORM框架? 利用描述对象和数据库表之间映射的元数据,自动把Java应用程序中的对象,持

    2024年02月02日
    浏览(47)
  • 一文快速入门体验 Hibernate

    Hibernate 是一个优秀的持久层的框架,当然,虽然现在说用得比较多的是 MyBaits,但是我工作中也不得不接触 Hibernate,特别是一些老项目需要你维护的时候。所以,在此写下这篇文章,方便自己回顾,也方便新手入门体验 Hibernate。 注:使用的版本是 Hibernate 5.x 的 ORM(Object R

    2024年02月03日
    浏览(48)
  • Hibernate Validator 组件

    Hibernate Validator 组件介绍 Hibernate Validator 是一个基于 Java 的验证框架,它提供了强大且灵活的验证功能,用于验证 JavaBean 对象的状态。它是基于 JSR 380 规范(Bean Validation 2.0)的实现,并且可以与任何 Java 应用程序集成。 Hibernate Validator 的目标是提供一种方便、易于使用的验证

    2024年02月11日
    浏览(39)
  • hibernate入门

    Hibernate 是一个开源的 ORM(对象关系映射)框架,它可以将 Java 对象与数据库表进行映射,从而实现面向对象的数据持久化。使用 Hibernate,可以避免手动编写 SQL 语句,从而提高开发效率,并且可以轻松地切换不同的数据库。 entity 实体类是映射到数据库表中的 Java 类,它包含

    2024年02月13日
    浏览(47)
  • hibernate 懒加载

    @Entity @Table(name = \\\"Student\\\") public class StudentInformation { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int rollno; private String name; // Mapping to the other table @OneToMany(mappedBy =\\\"stud\\\" ,cascade = CascadeType.ALL,fetch= FetchType.LAZY ) private SetAddress addressSet=new HashSet();; public StudentInformation() { } public St

    2024年02月09日
    浏览(91)
  • MyBatis和Hibernate的区别

    Hibernate 和 MyBatis 都是目前业界中主流的对象关系映射(ORM)框架,它们的主要区别如下。 1)sql 优化方面 Hibernate 使用 HQL(Hibernate Query Language)语句,独立于数据库。不需要编写大量的 SQL,就可以完全映射,但会多消耗性能,且开发人员不能自主的进行 SQL 性能优化。提供了

    2024年02月09日
    浏览(35)
  • MyBatis与Hibernate的区别

    目录 1、MyBatis与Hibernate 1.1 Hibernate简介 1.2 MyBatis简介 2、开发对比 2.1 开发速度 2.2 开发社区 2.3 开发工作量 3、优化对比 3.1 Hibernate的调优方案 3.2 Mybatis调优方案 3.3 SQL优化方面 3.4 扩展性方面 4、对象管理与抓取策略 4.1 对象管理 4.2 抓取策略 5、缓存机制 5.1 Hibernate缓存 5.2 MyB

    2024年04月28日
    浏览(33)
  • 【hibernate validator】(五)分组约束

    https://blog.zysicyj.top/ 定义一个超级跑车 使用组继承 定义序列组 使用序列组 定义一个具有重定义的默认组的类 使用重新定义的默认组 实现和使用默认组序列 必须集合@Valid哦,否则报错 本文由 mdnice 多平台发布

    2024年02月11日
    浏览(37)
  • 排查及处理hibernate自动更新(无缘故的)实体数据及表数据的根本问题,hibernate脏读更新,注意非常实用

    这里我默认大家都对hibernate的实体时态问题有所了解,并且知道hibernate是有内存快照机制,会自动更新数据库。 但是我们在开发过程中总是会无缘无故就更新数据库了,导致会在一些只读的spring事务中报错。这使我们抓狂,往往遇到这个情况我们仔细查看代码后也没有发现哪

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包