39.MyBatis自动映射、一对一、一对多

MyBatis-Day03

第一节、MyBaits的自动映射

在SQL查询结果的时候,如果字段名和属性名一致,且每一个属性有对应的set方法,MyBatis就会根据字段名与属性名进行自动映射。

条件:

1、字段名与属性名必须一致

2、开启自动映射配置(默认是开单表的自动映射)

image-20210903101511610

第二节、解决不能自动映射的问题

字段名与属性名不一致的问题

方式一、

如果字段与属性名之间关系 字段名

image-20210903103633068

image-20210903104046103

方式二、

我们在SQL查询的时候取别名,别名的名字与属性名一致–MyBatis帮你做自动映射

image-20210903105012586

image-20210903105022171

解决:

<select id="getAllGoods" resultType="goods">
    SELECT goods_id id ,goods_name name ,goods_location location ,goods_price price,goods_cid cid FROM goods;
</select>

为什么:取别名后执行SQL查出来的结果如下。结果集中字段名与属性是一致,所以可以做自动映射。

image-20210903105104171

方式三、

在MyBatis层面解决

通过ResultMap解决–手动映射

image-20210903112831786

第三节、通过MyBatis实现一对一,一对多的查询(级联查询–多表查询)
一对一的查询

什么叫做一对一:学校–校长 商品–商品分类

一对一在数据库中怎么体现:通过字段与字段之间的关联

在实体类中怎么体现:

private int id;
private String name;
private String location;
private double price;

//在实体类中描述一对一这种关系  组合
private Category category;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值