简介
Hibernate是一个简单的开源轻量级ORM框架,它大大地简化了java应用程序和数据库的交互,让使用者能够集中注意力于业务的实现。它是由Gavin King于2001年开始开发,作为EJB2风格实体的bean的代替品的对象关系映射工具。截止2017/8月更新至5.7版。
Hibernate的优点
- 开源和轻量级 :Hibernate框架是根据LGPL许可证和轻量级的开源工具。
- 快速性能 :Hibernate的速度很快,因为其内部使用了缓存。Hibernate有两种类型的缓存:一级缓存和二级缓存。一级缓存是默认启用的。
- 数据库独立查询 :HQL(Hibernate查询语言)是面向对象的SQL版本。它生成数据库独立查询,使用者无需编写数据库特定的查询语言。
- 自动创建表 :Hibernate提供了自动在数据库创建表的功能。
- 简化复杂连接 :在Hibernate中可以轻松获得多个表的数据。
- 提供查询统计和数据库状态 :Hibernate支持查询缓存,并提供有关查询和数据库状态的统计信息。
Hibernate体系结构
Hibernate体系中存在许多对象持久化对象、会话工厂、事务工厂、链接工厂、会话、事务等。
Hibernate架构有四层:java应用层、Hibernate框架层、反射API层、数据库层。
构成Hibernate体系的要素:
- 会话工厂(SessionFactory) :ConnectionProvider的会话和客户端工厂。它拥有数据的二级缓存(可选)。
- 会话(Session): 提供了应用程序和数据之间的接口。它是一个短生命周期的对象并包装了JDBC连接。它是事务、查询和标准的工厂。它拥有一级缓存(强制性)数据。org.hibernate.Session提供了插入、更新和删除对象的方法。它还提供了插入、查询和标准的工厂方法。
- 事务(Transaction): 事务对象指定工作的原子单位。
- 连接提供者(ConnectionProvider): 它是一个JDBC连接工厂。它从DriverManager或DataSource抽象出来的应用程序。 它是一个可选项。
- 事务工厂(TransactionFactory):是一个可选项。