一、什么是hibernate
Hibernate 是由 Gavin King 于 2001 年创建的开放源代码的对象关系框架。它强大且高效的构建具有关系对象持久性和查询服务的 Java 应用程序。
hibernate应用在Javaee三层结构中的dao层。
使用hibernate对数据库进行crud操作,不需要写复杂的jdbc代码和sql语句,因为hibernate对jdbc进行了封装。
持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
持久化是将程序数据在持久状态和瞬时状态间转换的机制。
JDBC就是一种持久化机制。文件IO也是一种持久化机制。
上图描述hibernate的五大核心接口和两个主要配置文件
Configuration:配置hibernate,创建SessionFactory对象
SessionFactory:初始化hibernate,充当数据存储源的代理,创建Session对象
Session:负责保存、更新、删除、加载和查询对象
Transaction:管理事事务
Query和Criteria:执行数据库查询
注意:Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃了。
二、Hibernate 优势
1、更加对象化
以对象化的思维操作数据库,我们只需要操作对象就可以了,开发更加对象化。
2、移植性
因为Hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。
3、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们称为轻量级框架。
对比Struts的Action和ActionForm,都需要继承,离不开Struts。Hibernate不需要继承任何类,不需要实现任何接口。这样的对象叫POJO对象。
4、Hibernate代码测试方便。
5、提高效率,提高生产力。
三、orm思想
orm:object relational mapping对象关系映射
(1)让实体类和数据库表进行一一对应
让实体类首先和数据库表对应
让实体类属性和表里面字段对应
(2)不需要直接操作数据库表,而操作表对应的实体类对象