Mybatis的一对一关系的查询方式(3)

数据库中现有User表
在这里插入图片描述
Account表
在这里插入图片描述
User类
在这里插入图片描述
Account类
在这里插入图片描述

  • 我们分析账户和用户表之间的关系
    • 一个用户可以拥有多个账户
    • 一个账户只能被一个用户拥有
    • 用户和账户之间是一对多关系
    • 账户和用户之间是一对一关系

    1. 我们怎么查询一对一关系呢?(及查询账户的同时带有用户信息)

    解决方式一 定义一个新的实体类继承Account类,并在其中定义需要从数据库中得到的字段,比如username,adress

    在这里插入图片描述
  • 我们在编写映射映射配置文件时
    在这里插入图片描述
    把数据库查询的列名与实体类名一一对应就可以封装对象返回啦,返回类型为新定义的实体类AccountWithUser

解决方式二 在Account类中持有User类的引用

在这里插入图片描述

  • 我们在编写因素配置文件时,通过ResultMap对Account类的属性进行一一对应,用到association标签。
  • association标签的用法 property对应Java类中的属性,javaType 对应 属性对应的Java类名(通常写全限定类名,而我们在主配置文件中)我们在typeAliases标签中写对应的包名都可以简写类名称,不需要写全限定类名
  • 在这里插入图片描述
  • 我们只需要在resultMap中配置好对应的信息即可
  • 配置要求:property 类属性名,column 数据库字段名
  • assocation中的property->type类中的引用类型名 assocation中的JavaType->type类中的引用类型的类名
    在这里插入图片描述
  • 对应sql语句的编写 resultMap指定自己编写的AccountMap
    在这里插入图片描述
  • 通过动态代理进行执行
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值