Hibernate(冬眠):

1、定义:Hibernate是开源的、用于封装数据库访问层的组件,称之为数据库访问层框架(持久层框架)

2、工作原理:ORM(对象关系映射 Object Relational Mapping)

在我们的应用程序(APP)中,数据用对象来体现,而在数据库中,数据使用表的形式保存。Hibernate用于应用程序中的对象(Object)与表中的数据关系之间的映射(Mapping),即把对象保存到关系表中或者把关系表中数据取出映射为对象。

中间写 sql 语句等繁琐的步骤被 Hibernate 封装,对我们是透明的

3、内容:

基于JDBC的,不用写SQL语句的持久层框架,其构想是java是以对象映射储存到数据库的表中,只需要维护对象与表的映射关系,hibernate自动生成SQL语句。Hibernate简化了对数据库的操作,提供了不同数据库的同一接口,应用程序开发是跨数据库成为可能。

4、核心API:configuration sessionfactory session query transaction

5、工作原理: hibernate启动 —> configuration( xml ) —> SessionFactory —> Session —> 创建Transaction —> 持久化操作 —> 提交Transaction —> 关闭Session

6、使用:

1、导包

2、文件配置:Hibernate.Cfg.xml he xx.hbm.xml(映射关系)

主键的生成方式:

1、自增长

2、Sequence(Oracle)

3、UUID

其中sequence是使用序列生成主键的(Oracle)

mysql数据库一般是identity,自动生成主键。

对象的三种状态:

1、暂时态:不和Session发生任何关系,程序运行结束就消失。

2、持久态:持久态的对象和 Session 发生了关系,如执行了 save、 get、 query 等方法, Session 中会缓存该对象(Session 的缓存即一级缓存)。

3、游离态:调用了 session.evict(Object obj)方法,和 Session 解除了关系。

架构图:

Hibernate - 图1