Mybatis(十)对象关系映射

本文详细介绍了Mybatis中的一对一和多对多映射关系。通过实例展示了如何使用resultType和resultMap进行映射,强调了在不同场景下选择合适映射方式的重要性。
摘要由CSDN通过智能技术生成

商品订单关系图
在这里插入图片描述
(1)一对一映射
1、需求:查询订单信息,关联查询用户信息
2、sql实现:主信息:orders,从信息:user
那么sql语句为:

SELECT 
  orders.`id`,
  orders.`user_id`,
  orders.`number`,
  user.`username`,
  user.`sex` 
FROM
  orders,
  USER 
WHERE orders.`user_id` = user.`id`

3、具体实现
resultType方式
首先创建扩展类:

public class OrdersExt extends Orders {
    // user.`username`,user.`sex`
    private String username;
    private String sex;
    //get set
}

然后在OrdersMapper.xml中:

<!-- 一对一映射之resultType -->
<select id="findOrdersAndUser" resultType="com.itheima.mybatis.po.OrdersExt">
    SELECT
    orders.`id`,
    orders.`user_id`,
    orders.`number`,
    user.`username`,
    user.`sex`
    FROM
    orders,
    USER
    WHERE orders.`user_id` = user.`id`
</select>

在接口中:

//一对一之resultType
public List<OrdersExt> findOrdersAndUser();

小结:
使用resultType来进行一对一结果映射,查询出的列的个数和映射的属性的个数要一致。而且映射的属性要存在与一个大的对象中,它是一种平铺式的映射,即数据库查询出多少条记录,则映射成多少个对象。

resultMap方式
使用resultMap来进行一对一结果映射࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值