Hibernate 框架理解

Posted 忘尘天外天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 框架理解相关的知识,希望对你有一定的参考价值。

  Hibernate框架简化了java应用程序与数据库交互的开发。Hibernate是一个开源,轻量级的ORM(对象关系映射)工具。

  ORM工具简化浏览数据的创建,数据处理和数据访问。它是将对象映射到数据库中存储的数据(表)的编程技术。

  ORM工具内部使用JDBC API与数据库进行交互。

  Hibernate框架的优点:

  • 开源和轻量级:Hibernate看见是根据LGPL许可证和轻量级的开源工具。
  • 快速性能:Hibernate框架的性能很快,因为缓存在Hibernate框架内部使用。Hibernate框架中有两种类型的缓存:一级缓存和二级缓存。一级缓存默认是启用的。
  • 数据库独立查询:HQL(Hibernate查询语言)是面向对象的SQL版本。它生成数据库独立查询。所以不需要编写数据库特定的查询语句。在 Hibernate之前,如果项目修改了数据库,需要更改SQL查询,从而导致维护变得复杂。
  • 自动创建表:Hibernate框架提供了自动创建数据库表的功能。因此,无需手动在数据库中创建表。
  • 简化复杂连接:在Hibernate框架中可轻松获取多个表中的数据。
  • 提供查询统计和数据库状态:Hibernate支持查询缓存,并提供有关查询和数据库状态的统计信息。

Hibernate架构包括许多对象持久对象,会话工厂、事物工厂、连接工厂、会话事务等。Hibernate架构中可分为4层Java应用层、hibernate框架层、反手api层和数据库层

  Application ------Presistent  Object -----HIBERNATE  Mapping  File、Configuration  File --Database

  Presistent  Object部分包括:SessionFactory、Session、Transaction Factory、Transaction、Connection Provider。

  Hibernate框架可以使用许多对象会话工厂,会话、事务等以及现有的Java  API,如JDBC(Java数据库连接)、JTA(Java事务API)和JNDI(Java命名目录接口)。

  要创建一个hibernate应用程序,需要知道Hibernate架构的元素。

  会话工厂(SessionFactory)

  SessionFactory是ConnectionProvider的会话和客户端工厂。它拥有数据的二级缓存(可选)。org.hibernate.SessionFactory接口提供了工厂方法来获取Session的对象。

  会话(Session)

  Session对象提供应用程序和存储在数据库中的数据之间的接口。它是一个短生命周期的对象并包装JDBC连接。它是事务、查询和标准的工厂。它还提供了事务、查询和标准的工厂方法。

  事务(Transaction)

  事务对象指定工作的原子单位,它是一个可选项。org.hibernate.Transaction接口提供事务管理的方法。

  连接提供者(ConnectionProvider)

  它是一个JDBC连接工厂。它从DriverManager或DataSource抽象出来的应用程序。是一个可选事项。

  事务工厂(TransactionFactory),是一个可选项。

另外,可以使用注释创建hibernate应用程序。有许多注释可用于创建hibernate应用程序,如@Entity,@Id,@Table等。Hibernate注释基于JPA2规范。并支持所有功能。所有的JPA注释都在javax.persistence.*包中定义。Hibernate EntityManager实现由JPA规范定义的接口和生命周期。使用hibernate注释的优势是不需要创建映射(*.hbm.xml)文件直接创建对象关联。

@Entity注释将类标记为实体,放在类名上。

@Table注释指定要关联此实体类的数据库的表名。放在类名上,格式@Table(name="表名")

如果不使用@Table注释,hibernate将使用类名作为表名称。默认情况。

@Id注释标记实体的标识符。

@Column注释指定此属性或字段的列的详细情况。如果位指定@Column注释,则属性名称将用作列名,默认情况下。

 

以上是关于Hibernate 框架理解的主要内容,如果未能解决你的问题,请参考以下文章

对SSH三大框架的理解

框架 总结吧,理解不是太深

Hibernate理解?

持久化框架Mybatis与Hibernate的详细对比

Hibernate框架学习——入门

SSH框架整体理解和总结