Hibernate概述:
1. 什么是框架:
写程序,在使用框架之后,帮我们实现一部分的功能,使用框架的好处可以少写一部分代码实现功能
2. 什么是hibernate框架:
- hibernate框架应用在javaee三层结构中的dao层的框架
- 在dao层里面做对数据库的crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处,不需要写复杂的jdbc代码了,不需要写sql语句了
- hibernate是一个开源的轻量级的框架
- hibernate版本
hibernate3.X
hibernate4.x(过度版本,少有人用)
hibernate5.x
3. hibernate框架的目录结构:
- documentation:hibernate的相关文档
- lib:hibernate的相关jar包
- project:hibernate的相关的源代码
4. hibernate底层实现的思想:
- hibernate使用orm思想对数据库进行crud操作
- 在web阶段学习javabean思想(有javabean的操作),javabean更正确的叫法,叫做实体类
- hibernate的orm思想(Object relational mapping):对象关系映射
让我们的实体类和我们的数据库表进行一一的对应关系:让实体类和数据库的表对应,让实体类的属性和表里面的字段对应,这样的话就不需要直接操作数据库表,二操作表对应实体类对象,就可以实现对数据库的操作。
Hibernate入门:
- 搭建hibernate环境
- 导入jar包
lib equired下的jar必须要
libjpa下实体映射包
还有一个是数据库的驱动包
-
- 使用hibernate步骤
- 导入jar包
- 创建实体类
- 使用hibernate步骤
-
-
- 配置实体类的配置文件(配置实体类和数据库表的一一对应的关系,包括属性和字段,实体类和表)
- 每一个实体类必须有一个属性对应表的主键(保证唯一性,Hibernate要求)
- 在每一个实体类的下面创建一个xml文件(位置和名称没有具体的要求,但建议卸载该实体类的下面),建议命名为:实体类名称.hbm.xml(此文件需要引入dtd的约束)
- 配置实体类的配置文件(配置实体类和数据库表的一一对应的关系,包括属性和字段,实体类和表)
-
创建实体类
引入约束文件
配置配置文件
-
-
- 配置Hibernate的核心配置文件
- 核心配置文件格式为xml,且核心配置文件名称和位置固定(有要求:必须放在src目录下面;必须为hibernate.cfg.xml)
- 配置Hibernate的核心配置文件
-
-
-
-
- 引入约束文件
-
-
-
-
-
- Hibernate在操作的过程中,只会加载核心配置文件,其他配置文件不会进行加载(如上面的映射配置文件)
- 配置hibernate.cfg.xml文件
- 配置数据库信息
- 配置Hibernate信息
- 配置映射文件信息
-
-
-
-
- 代码实现hibernate的crud操作
- 加载hibernate的核心配置文件
- 创建SessionFactory对象
- 使用SessionFactory得到Session对象
- 开启事务
- crud操作
- 提交事务
- 关闭资源
- 代码实现hibernate的crud操作
-
package com.geore.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import com.geore.pojo.User; public class TestDemo1 { @Test public void fun() { // 加载hibernate核心配置文件,会到src目录下去查找hibernate.cfg.xml文件进行加载 Configuration cfg = new Configuration(); cfg.configure(); // 创建SessionFactory对象,读取核心配置文件,并且根据映射关系将表创建 SessionFactory sf = cfg.buildSessionFactory(); // 使用SessionFactory创建Session对象,session类似于链接对象 Session session = sf.openSession(); // 开启事务 Transaction ts = session.beginTransaction(); // 写具体的逻辑crud操作 // 添加操作 User user = new User(); user.setUsername("Geore"); user.setPassword("123456"); session.save(user); // 提交事务 ts.commit(); // 关闭资源(之前还可以加上一步,回滚事务) session.close(); sf.close(); } }
映射配置文件注意点
- 映射配置文件名称和位置没有固定的要求
- 映射配置文件中,标签name属性值写实体类相关的内容
- Class标签name属性值实体类的全路径
- Id标签和property标签name属性值,实体类属性名称
- Id标签和property标签,column属性可以省略(不写默认和那么属性的值一样)
- Property标签还有一个type属性,用来指定表字段的类型(可以不写)
核心配置文件的细节
- 核心配置文件的名称和位置固定
- 核心配置文件主要分为部分的内容
- 配置数据库信息:必须写
- 配置Hibernate信息:可选
- 配置映射关系文件: 必须写