MyBatis学习笔记 (第1刷, 2021.01)(3/4 多表操作)

目录

MyBatis笔记

多表操作

表间关系

一对一表间关系

一对多表间关系

多对多查询

[插播]junit单元测试

END


MyBatis笔记

第1刷,南湖立交2021.12,课程来源:B站up/黑马

多表操作

表间关系

在mysql中,表间关系以外键约束体现.

在Java中,表间关系以类中引用体现.

  • 主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表。
  • 从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的表就是从表。

-- mysql
CREATE TABLE tb_emp6(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);

//外键约束的环境:A表的2个字段:id,bid,B表的1个字段:id.

//外键约束的逻辑:为bid添加外键约束,链接B表的id

    
//java
pubilc class User{
Order order=new Order;
}

一对一表间关系

[需求]

  • 为User,Order创建一对一表间关系

[开发步骤]

  • 在com.it.domain包中,创建User,Order实体类
  • 在User实体类中创建Order的对象,这就是引用数据类型.
  • 创建OrderMapper.xml,UserMapper.xml

<association><javaType>

同时查询2个表
SELECT * FROM t1 t,t2 tt WHERE t.c1=tt.c1;

e181

1.查询order表

2.查询order,user表

3.给2个id分别定义别名并查询order,user表

4.运行java程序并查看封装结果:封装失败

5.定义resultMap并配置column-property映射关系

6.运行程序,封装成功

[小结]

多表查询的重点就在于需要手动配置resultMap映射关系,否则程序无法自动封装查询结果并发送给java程序.

[实际练习步骤]

1.准备MySQL环境,编写以下文件

  1. user表
  2. order表
  3. uid外键约束

2.准备java开发环境,编写以下文件

  1. sqlMapConfig.xml
  2. UserMapper.xml
  3. OrderMapper.xml
  4. User.java
  5. Order.java
  6. UserMapper.java
  7. OrderMapper.java
  8. MultiTableSelectDemo.java

3.运行程序

*

文件

列名/属性名

列名/属性名

列名/属性名

user.table

id

username

password

User.java

id

username

password

文件

列名/属性名

列名/属性名

列名/属性名

order.table

id

total

uid

Order.java

id

total

uid

<collection><ofType>一对多表间关系

**要点**

一对多的查询,使用集合把”多”的那个表封起来,成为”一”的那个表的一个属性.在java程序中封到:属性,在xml配置中封到:<resultMap><collection></collection></resultMap>

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值