软件三层架构:
浏览器
表示层
业务逻辑层
持久化层
数据库
hibernate是一款工作在持久化层的大型的、开源的ORM框架
持久化:
1狭义:将数据从“不可掉电(内存)”的设备上,保存在“可以掉电(硬盘)”的设备上
2广义:与数据库有关的一切操作都可以归纳到持久化范围内。
create:保存。将数据保存在数据表中。对应SQL的insert
retrieve:查询。将数据从数据库中提取出来。对应select
在hibernate中特指的使用专门的查询API进行数据查找工作,例如HQL、QBC
update:更新。将 数据库表中的数据更新为新的值。对应SQL的UPdata
Delete:s删除。将数据表中的数据删除,对应delete语句
Load:加载。根据一个对象的OID属性,从数据库中查找一条唯一的记录返回。
OID属性:是java对象中与数据库表中主键对应的属性。
ORM思想
含义:Object Relationship Mapping对象关系映射
对象:在java程序中用于封装具体业务数据的类的对象,这样的对象通常称之为“实体类”,往往是由Javabean的技术实现。如:Book、User等
关系:关系型数据库
映射:在java对象和数据库之间建立关系
jdbc中的映射关系
Java概念 | 数据库概念 |
类 | 表 |
属性 | 字段/列 |
对象 | 记录/行 |
hibernate支持的映射关系
能够将java类之间的关系。映射为数据库表之间主外键关系。
Java类:user[1]-Order[n]
数据库表:orders通过外键关联到user表的主键
精髓:将对数据库的操作,转化为对java对象的操作。
hibernate特点:
简化持久化操作
支持丰富的映射,对jdbc中基本的单表关系进行扩充
屏蔽不同数据库之间的差异
非侵入式:不会对原有的Javabean/entity污染,实体使用pojo
分别在线程和进程两个级别维护了一个一级缓存和二级缓存,用于提升性能。