1、数据库表与表之间的关系
一对多关系,如:一个部门对应多个员工,一个员工只能属于一个部门;一个客户对应多个联系人,一个联系人只能属于某一个客户。
多对多关系,如:一个学生可以选择多门课程,一门课程也可以被多个学生选择;一个订单可以包含多个商品,一个商品可以包含在多个订单内。
一对一关系(了解)。一般可以建一个表,或者可以以一对多关系处理。
2、Hibernate一对多的关系映射
创建项目,引入相应jar 包;然后创建数据库和表,如下图所示:
创建实体,下面是联系人实体,创建客户对象,并生成其get()、set()方法。
创建映射,有几个实体就有几个映射
创建核心配置文件
引入工具类
核心配置文件和工具类可以直接复制之前项目的,稍作修改即可。
编写测试类
由于保存的时候只保存一边会报错,这里我们可以采用级联配置,如下:
保存客户级联联系人
保存联系人级联客户,同理!
测试对象导航
级联删除
删除一边的时候,同时将另一方的数据也删除。下面是删除客户级联删除联系人:
删除联系人级联删除客户,基本不用,不合逻辑。
区分cascade 和inverse 的区别:
3、Hibernate多对多的关系映射
创建表
角色表
中间表
创建实体
创建映射
编写测试
只保存一边也是不可以的,会报错瞬时对象异常。
级联操作
保存角色级联用户,同上。
其他操作
结束!!!