01.Hibernate概述
1.Hibernate是持久化层的一个大型开源框架。
2.持久化
①狭义:将数据从“不可掉电”的设备保存到“可以掉电”的设备上。
②广义:所有与数据库有关的操作,都可以看做持久化操作。
[1]添加
[2]删除
[3]更新
[4]查询:在Hibernate中特指使用专门的API显式的进行查询,例如:HQL或QBC等等。
[5]加载:根据指定的OID的值,从数据库中加载一个Java对象到内存中。
OID:Object ID。Java实体类中与数据库表记录的主键对应的属性。
3.ORM
①ORM:Object Relationship Mapping对象关系映射
Object:Java中的实体类对象,例如:Book、Student、Order等等。
Relationship:关系型数据库。
②映射
[1]JDBC能够实现的映射方式
|
类 |
数据库表 |
|
属性 |
表的字段 |
|
对象 |
数据库表中的记录 |
[2]Hibernate能够实现的映射
●单表关联
●单向/双向多对一
●基于主键/外键的一对一
●单向/双向多对多
4.Hibernate的特点
①非侵入式框架——Hibernate对持久化类没有特殊的要求,不需要持久化类实现任何接口或继承任何类。
②能够将对Java对象的操作,转化为对数据库表的操作。
|
Student stu = (Student)session.get(Student.class,1); stu.setStuName("Tom"); |
③减少对SQL语句的编写
④Hibernate维护了两个级别的缓存,通过利用缓存能很大程度上提升程序的性能。
[1]线程级别的一级缓存 Session级别
|
Student stu = (Student)session.get(Student.class,1); stu = (Student)session.get(Student.class,1); |
[2]进程级别的二级缓存 SessionFactory级别
对于一些经常查询且很少修改的数据可以保存到二级缓存中,在项目整个运行过程中,这类数据只加载一次,减少对数据库访问的次数。
程序→一级缓存→二级缓存→数据库
⑤屏蔽不同数据库实现之间的差异
在Hibernate中只需要提供具体数据库的“方言”,Hibernate就可以根据需要生成特定数据库上能够执行的SQL语句。
MySQL分页:limit Oracle分页:RUWNUM
5.安装Hibernate插件

浙公网安备 33010602011771号