Mybatis高级查询之一对一查询的四种方法(笔记)

1. 一对一查询

1.1-1.3 我们假设场景为用户和角色一对一,根据数据库基本原理,我们把外键设置在用户一边,即在实体类中添加角色这个属性。

1.1 一对一嵌套结果查询

1.1.1嵌套结果查询的核心思想
  • 核心思想:直接用slect标签通过数据库字段和实体类字段的自动映射。
    • 首先在select语句中指明映射关系。
    • 然后我们看resultType的值是一个实体类。
    • 自动映射到实体类。
  • 应用在场景中:我们假设用户和角色之间是一对一,在用户类中一个属性是角色 sysrole类型的,查询用户的时候把所归属的角色查询出来,那么其就可以写成如图所示。
    • user_name userName代表数据库字段和实体类中字段
    • r.id "role.id"此处是通过别名映射的,role是什么?是声明在user类中属性。
      enter description here
1.1.2 嵌套结果查询优缺点
  1. 什么是?通过了一次查询把结果映射到了不同对象里。
  2. 好处是什么?减少了数据库查询次数,减少了数据库的压力。
  3. 坏处是什么?要写复杂的SQL,不容易写对,由于要映射到不同的对象中,一定程度上增加了服务器的压力。

1.2 使用resultMap配置一对一映射

1.2.1 具体应用过程

我们在1.1中使用的方法是直接在select标签中直接写后自动映射到实体类,resultType返回类型是一个实体类。还有一种方法是在xml文件中的标签配置关系,然后再在select的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值