Hibernate快速入门
什么是Hibernate框架?
- hibernate是应用在javaee三层模型的Dao层的框架;
- 在dao层里面做数据库的增删改查的操作,使用hibernate就能实现curd操作,其底层代码就是JDBC,hibernate对JDBC进行了封装,使用hibernate的好处就是不用再写过多的SQL语句、JDBC代码也能实现curd操作;
- hibernate是开源的轻量级的框架;
- hibernate版本有:3.x 4.x(过渡版本) 5.x(建议使用版本)
什么是ORM思想?
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。- hibernate使用ORM思想进行curd操作;
- 在javaweb阶段,javabean更准确的说法是叫实体类;
- orm:object relational mapping,对象关系映射。
文字描述:
搭建Hibernate环境
1.导入hibernate的jar包:required目录下的包;jpa目录下的包;以及日志Java包;mysql驱动java包。
以及驱动包
2.创建一个实体类,hibernate要求实体类要有一个属性是唯一的,生成get/set方法。
(set/get方法略)
3.创建数据库,使用hibernate的时候不需要手动创建表(假定数据库名为hibernateTest)。
4.配置实体类和数据库表的一一映射关系(配置文件)
4.1 创建一个xml格式的配置文件:名称和位置没有固定要求, 但是一般在实体类中创建,建议取名:实体类名.hbm.xml。
(目录结构)
4.2 在配置文件中引入xml约束(dtd约束 :hibernate-mapping);
4.3 配置映射关系(实体类与数据库表对应、实体类id与数据表id对应,hibernate要求实体类有一个唯一的属性,数据表也要有一个唯一的字段)。
(注:这里的column可以不写,不写默认数据表生成的字段跟name里面的值一样)
4.4 创建hibernate核心配置文件:
格式为xml,名称、位置固定(名称必须是hibernate.cfg.xml,位置必须在src下);
(目录结构)
4.5 引入dtd约束(hibernate-configuration):hibernate操作过程中,只会加载核心配置文件,不会加载其他配置文件;
4.6 配置数据库信息
(可以在hibernate.properties里面去看配置信息,见下图)
我们的配置文件(在hibernate_configuration标签下的session-factory下配置):
4.7 配置hibernate信息
hibernate.properties里面配置信息:
我们的配置文件:
(这里的resource不是全类名,是映射文件的相对位置路径)
实现添加操作
加载hibernate核心配置文件
创建SessionFactory对象
使用SessionFactory创建Session对象
开启事务
写具体的逻辑(curd操作)
提交事务
关闭资源(在Web项目中不需要关闭)
工具类:
在实际操作中获得sessionFactory对象:
实体类编写规则:
- 属性私有,提供公有的set/get方法
- 建议不使用基本类型,而是使用基本类型对应的包装类。
主键生成策略:
有很多
重点是使用native和uuid
其中,使用uuid主键策略,必须要求实体类的唯一的id(数据表主键对应的属性)是字符串类型的,同时他在数据库中生成的主键类型是varchar类型。
实体类操作:
1.添加
2.查询
(1)id查询
(2)查询所有
第一种方式:Query对象
第二种方式:Criteria对象
第三种方式:SQLQuery对象
3.修改
4.删除
Hibernate缓存
验证缓存:
hibernate事务规范写法:
Hibernate绑定session:
一对多关系的映射配置
一对多的级联操作
简单写法:
一对多级联删除
它的执行过程:
- 根据id查询出客户(一)
- 根据外键的id值查询联系人(多)
- 把联系人外键修改成null
- 删除联系人
- 删除客户
一对多级联修改
多对多关系配置映射
创建核心配置文件
多对多级联操作
多对多级联保存(与一对多一样)
多对多级联删除(了解)
多对多维护第三张表
