Hibernate工作原理及为什么要用?


原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory3.打开Session 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory

为什么要用: 1. JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

2.Hibernate是如何延迟加载?

1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)

2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 

 

 

3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)

类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate 是一个 Java 持久化框架,它的主要目的是让开发人员能够以面向对象的方式来操作关系型数据库。它实现了 Java 对象和数据库表之间的映射,提供了一个 ORM(Object-Relational Mapping)框架,让开发人员不需要编写 SQL 语句就能够进行数据库操作。 Hibernate 的核心是 SessionFactory 和 Session 两个对象。SessionFactory 是 Hibernate 的核心接口之一,它是一个线程安全的工厂类,负责创建 Session 对象。Session 是 Hibernate 的另一个核心接口,它代表了一个数据库连接,负责与数据库进行交互。Session 提供了一系列的方法,包括保存、更新、删除、查询等操作,可以让开发人员以面向对象的方式来进行数据库操作。 Hibernate 的工作流程如下: 1. 配置:开发人员需要使用 Hibernate 配置文件来配置数据库连接、实体类和映射关系等信息。 2. 映射:开发人员需要根据数据库表结构定义实体类,并使用 Hibernate 映射文件将实体类和数据库表进行映射。 3. SessionFactory:在应用程序启动时,Hibernate 会创建一个 SessionFactory 对象,它是线程安全的,可以被整个应用程序共享。 4. Session:在需要进行数据库操作时,开发人员需要创建一个 Session 对象,它代表了一个数据库连接。Session 通过 SessionFactory 创建,它是轻量级的,不是线程安全的,通常在单个线程中使用。 5. 操作数据库:在 Session 中,开发人员可以使用各种方法来操作数据库,包括保存、更新、删除、查询等操作。Hibernate 会将这些操作翻译成 SQL 语句,并执行在数据库中。 6. 事务管理:在 Hibernate 中,所有的数据库操作都需要在事务内进行,开发人员可以使用事务管理器来管理事务。 7. 关闭 Session 和 SessionFactory:在使用完 Session 后,需要将其关闭以释放资源;在应用程序关闭时,需要关闭 SessionFactory。 总之,Hibernate 的核心思想是将 Java 对象和数据库表进行映射,让开发人员能够以面向对象的方式来进行数据库操作。它使用 SessionFactory 和 Session 两个对象来管理数据库连接,并提供了一系列的方法来进行数据库操作。Hibernate 还提供了事务管理、缓存等功能,使得数据库操作更加的高效、简洁和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值