1 web内容回顾
2 hibernate概述
3 hibernate入门案例
4 hibernate的配置文件
5 hibernate的核心api
Javaee三层结构
1 web层:struts2
2 service层:spring
3 dao层:hibernate
(1)对数据库进行crud操作
MVC模式
1 M : 模型
2 V: 视图
3 C: 控制器
Hibernate的概述
什么是框架
1 框架帮我们实现了一部分功能,少写一部分代码
什么是hibernate框架
1 hibernate框架应用在javaee三层结构中dao层框架
2 hibernate框架底层就是jdbc,对jdbc进行封装,使用hibernate可以实现对数据库的crud操作
3 web阶段 javabean,javabean更正确叫法:实体类
(1)编写规范:属性私有的,私有的属性有公开的set和get方法
4 hibernate使用orm思想实现对数据库操作
(1)orm:object relational mapping,对象关系映射
(2)文字描述:
- 一般一个实体类对应一个数据库表
- 让实体类和数据库表进行一一对应关系
-- 让类名称和表名称对应
-- 让类里面属性 和 表里面字段进行一一对应 - 直接操作不是表,而是表对应的实体类对象,对应操作表数据
(3)画图分析:
5 hibernate版本 5.x
Hibernate3.x hibernate4.x
Hibernate的入门
搭建hibernate环境
第一步 导入hibernate的jar包
需要额外的jar包(不是hibernate本身),日志输出的jar包
还需要数据库驱动的jar包
第二步 创建实体类
(1)hibernate好处:只要配置实体类和表一一对应关系,帮我们把数据库创建
第三步 配置实体类和数据库表映射关系(一一对应关系)
(1)创建映射配置文件,配置文件类型xml
- 名称和位置没有固定要求
- 建议:把映射配置文件创建在实体类所在包里面,实体类名称.hbm.xml
(2)配置文件是xml文件,首先在xml文件中需要引入约束,常用两种 dtd 和 schema
- 在hibernate框架和struts2框架中,引入 dtd 约束
- 在spring框架中,引入schema约束
(3)配置实体类和表映射关系
<hibernate-mapping>
<!-- 1 配置实体类和数据库表对应
class标签有两个需要使用的属性
name:实体类全路径(包类路径)
table:数据库表名称
-->
<class name="cn.itcast.entity.User" table="t_user">
<!-- 2 实体类有属性唯一值,对应表唯一字段
id标签:
name属性:实体类属性名称
column属性:表字段名称
-->
<id name="uid" column="uid">
<!-- 生成策略 -->
<generator class="native"></generator>
</id>
<!-- 3 配置其他属性和字段对应
name: 实体类属性名称
column:字段名称
-->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="address" column="address"></property>
</class>
</hibernate-mapping>
第四步 创建hibernate核心配置文件
(0)名称和位置是固定的
- 位置;在src下面
-
名称:hibernate.cfg.xml
- 引入约束
(1)配置数据库信息
(2)配置hibernate信息
- 配置让hibernate帮创建表
(3)在hibernate操作时候,只会加载核心配置文件,不会加载其他配置文件
- 把映射文件加入到核心配置文件中
第五步 测试操作(添加操作)
(1)查看表是否创建
(2)查看表里面是否添加记录
Hibernate操作的代码步骤固定的
第一步 加载核心配置文件
(1)Configuration
第二步 创建sessionFactory对象
(2)使用Configuration 对象里面的方法创建sessionFactory
第三步 使用sessionFactory创建session对象
第四步 使用session对象开启事务
(1)使用session里面的方法开启事务,Transaction
第五步 写具体操作(crud操作)
第六步 提交事务
(1)Transaction里面的方法commit方法
第七步 关闭资源
@Test
public void testAdd() {
// 第一步 加载核心配置文件
// (1)Configuration
Configuration cfg = new Configuration();
cfg.configure();
// 第二步 创建sessionFactory对象
// (2)使用Configuration 对象里面的方法创建sessionFactory
//做很多事情:
// 根据配置数据库信息 ,找到映射文件,进行表创建
SessionFactory sessionFactory = cfg.buildSessionFactory();
// 第三步 使用sessionFactory创建session对象
Session session = sessionFactory.openSession();
// 第四步 使用session对象开启事务
// (1)使用session里面的方法开启事务,Transaction
Transaction tx = session.beginTransaction();
// 第五步 写具体操作(crud操作)
User user = new User();
user.setUsername("lucy");
user.setPassword("1314520");
user.setAddress("日本");
//调用session对象里面的方法
session.save(user);
// 第六步 提交事务
// (1)Transaction里面的方法commit方法
tx.commit();
// 第七步 关闭资源
session.close();
sessionFactory.close();
}
常见错误:
(1)在核心配置文件中,没有引入映射文件,出现异常
Hibernate的配置文件详解
映射配置文件(重点)
1 映射配置文件名称和为没有固定要求
2 在映射文件中配置
(1)配置实体类和表映射
- 使用class标签,name属性里面写 实体类全路径,table属性里面写 生成的表名称
(2)配置实体类唯一属性和表唯一字段对应 - 使用id标签配置
(3)配置其他属性和字段 - 使用property标签,有name属性值写 实体类属性名称
- property标签有属性 column属性,其实column属性可以省略的,column值和name属性值一样的
核心配置文件
1 核心配置文件名称和位置固定
(1)位置在 src下面
(2)名称 hibernate.cfg.xml
2 核心配置文件中配置信息
(1)配置数据库信息(必须的)
(2)配置hibernate信息(可选的)
(3)引入映射文件(必须的)
在开发中,这个文件很少做修改,一般修改的部分添加映射文件引入
Hibernate的核心api
Configuration对象
1 加载hibernate核心配置文件
2 过程:到项目src下面找到名称是hibernate.cfg.xml文件,把这个加载到对象里面
3 代码
SessionFactory对象
1 本身接口
2 使用configuration创建sessionFactory对象
(1)在创建sessionFactory过程中,根据映射配置关系,把数据库表创建
3 创建sessionFactory过程中特别耗资源的
(1)一般在开发中,一个项目只有一个sessionFactory对象,实现出类似于servletcontext效果
(2)实现思想
- 把创建sessionFactory过程写到工具类里面
- 在工具类写 static静态代码块实现
4 sessionFactory工具类创建
强调:
在项目中,创建了sessionFactory之后,sessionFactory不需要关闭了
Session对象
1 session类似于jdbc里面的connection 连接
2 session是单线程对象
(1)在项目中,每个人使用的必须是自己的session对象,不能使用其他人的对象
3 调用session的方法实现操作
(1)添加 save方法
- session.save(实体类对象);
(2)修改 update方法
(3)删除 delete方法
(4)根据id查询 get方法
Transaction对象
1 代表事务对象
(1)hibernate建议手动方式控制事务
2 transaction对象里面主要两个方法
(1)commit方法:事务提交
(2)rollback方法:事务回滚
重点
1 搭建hibernate环境
(1)映射配置文件操作
2 hibernate操作的代码
3 hibernate的概念
(1)orm思想
案例-新增客户功能
1 使用servlet+beanutils+hibernate实现
2 准备工作
3 添加客户功能
第一步 点击新增客户超链接,到servlet里面,到添加页面中
第二步 在添加页面中,输入客户信息,提交表单到servlet
(1)在servlet获取表单提交数据,封装到实体类对象里面
(2)调用方法实现添加(hibernate实现)
4 hibernate操作的过程(重点)
5 问题:
(1)第一次操作时候,很慢
- 第一次创建sessionFactory对象要在数据库建表 下一次就好了
不知为何图片上传不了 JDBC JAVABEAN MVC模式 要有点了解
有什么问题要多问 你问你自己得到解答在提升 回答你的人的认识又多了
一步 一起进步 一起努力!!!