为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate框架第一天 orm思想与配置文件的环境搭配

标签:
Java MySQL

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模式 要有点了解
有什么问题要多问 你问你自己得到解答在提升 回答你的人的认识又多了
一步 一起进步 一起努力!!!

点击查看更多内容
17人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消