mybatis多表查询


title: mybatis多表查询
date: 2019-12-17 15:52:02
tags: mybatis
categories: mybatis
src: https://shenblog.top/

Mybatis多表查询

一对一查询

  • 环境准备

    • 一张user表,一张account表
    • 一个账户对应一个用户,为一对一的关系
    • 用户的id和账户里的用户id为一一对应
  •  	//用户实体类
        	private Integer id;//自增长主键id
        private int uid;//用户唯一id
        private String username;//用户名
        private Date birthday;//生日
        private String sex;//性别
        private String address;//地址
        //省略setter和getter方法
    
  • //账户实体类
      	private int id;//自增长主键id
        private int uid;//用户id
        private double money;//账户余额
        //省略setter和getter方法
    

方式一

  • 新建AccountUser类,继承account类。

  •  	private String username;//用户名
        private String address;//地址
         //省略setter和getter方法
    
  • 目录结构如下

  • sql文件

  • 将结果封装进AccountUser。

  • 结果如下

方式二

  • 在account中加一个User的属性
  • 用resultMap来处理.
  • 修改查询方法findAll。接收返回的实体类为Account,不再是AccountUser
  • 修改IAccountDao.xml修改如下
  • resultMap中的id,定义了一个名称,返回时调用
  • type:没有重写别名,只能使用全限定类名
  • 中property:必须对应实体类的集合名
  • javaType:使用全限定类名。

一对多查询

  • 分析:一个用户可能会由多个账户。构成了一对多的关系

  • 有些账户可能没有对应的账户,但所有的用户都必须查询出来,所以使用左外连接比较好

  • 在主表User中加入从表Account

  • 修改IuserDao.xml文件

  • 测试

多对多查询

  • 新建role角色表
  • 一个用户可能有多个角色,一个角色可能由多人扮演,构成了多对多的关系!
  • 多对多的关系表,可以拆分成两次一对多的关系,构建一个中间表,中间表的主键由两张多对多关系表的主键对应起来,外键设为两张表的主键
  • 演示一下由角色对应用户的多对多
  • 新建用户实体类
  • 加入从表user类。
  • 新建Iroledao.xml
  • 修改sqlMapconfig.xml的映射位置
  • 测试类
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值