目录
一、多对多表的映射文件配置详解
1、Hibernate的多表关联关系映射
学生与课程多对多的关系:
创建对应的映射文件
配置set:
在配置文件中引用映射文件
直接使用session来测试文件配置及映射是否正确,主要看能否生成对应的表格
2、多对多表保存数据注意事项讲解
提供有参数的构造方法之后,默认的就没有无参数的构造方法,而在获取参数的时候
需要创建无参数的对象,所以需要自己提供一个无参数的构造函数
保存数据的注意事项:
开启事务,
以及级联关系 cascade = “save-update”
inverse可以减少sql语句,但是级联的表格中没有插入对应的数据?
课程也要级联 cascade = “update-save”
inverse不能两边都为true,否则中间表没有作用
3、加载策略
1)类级别的加载策略
load只有用到里面的数据时,才会执行sql语句
2)关联级别的加载策略
3)fetch
关联查询:
4)多对一的加载策略
客户和订单表
many-to-one:多对一中不使用子查询
5)批量加载(了解)
以客户为例:
在set中添加batch-size=2
二、HQL
1、HQL简介
2、选择查询
1)查询一个结果:
方式一
方式二:
2)投影查询:
3)排序、聚合函数、分组查询
排序,查询语句不需要事务
分页:
聚合函数:
分组查询:根据客户分组,查看有多少订单(面向对象的写法)
4)连接查询
交叉连接:
隐式内连接【join】:
内连接:等效sql连接,返回的数据时封装到一个数组里面
迫切内连接,hibernate底层使用 内连接。
左外连接【left outer join】
5)命名查询
三、QBC查询
1、简介
Query By Criteria:完全不用写HQL语句