zoukankan      html  css  js  c++  java
  • Mybatis_连表查询

    当需要查询的数据一个表不能满足的时候,可以进行连表查询,将多个表的数据一起获取

    一对一关联查询

    案例:【用户表和购物车】

    用户表

    购物车表

    用户Mybatis的工具自动生成代码

    需求:根据用户id返回一个用户对象【用户对象里面需要有的数据有用户自己的信息+该用户的购物车信息】

    主表是用户表,从表是购物车表

    修改主表的实体类,手动添加成员变量

    在主表实体类中添加成员变量,变量的数据类型是从表

    dao接口中新增方法

    映射文件方式一:多表一次查询

    sql语句

    resultMap配置

    上面配置中体现了User类中有ShopCar成员变量的关系,单个对象用association,集合对象用colleciton。

    association标签

          property:User类中ShopCar成员变量的变量名

          javaType:User类中ShopCar成员变量的数据类型

    测试结果

    接收返回的User对象,里面即保存了用户表的数据,也保存了该用户对应的购物车的数据。

    映射文件方式二:多表单独查询

    第一条sql语句

    resultMap:

    第二条sql语句

    总体

    测试结果

    成功

    一对多关联查询

    案例:【用户表和地址表】

    需求:根据用户id返回一个用户对象【用户对象中有用户表信息,还有地址表中所有的地址数据】

    修改主表的实体类【主表是用户表】

    dao接口中新增方法

    映射文件方式一:多表一次查询 (注意ofType)

    映射文件方式二:多表单独查询

    自连查询

    使用的场景:

    员工与管理者【只需要一张表:员工表】

    一级菜单与二级菜单【只需要一张表:菜单表】

    一级评论与二级评论【只需要一张表:评论表】

    商品大类别与小类别:只需要一张表:类别表】

    等等,这类需求都只需要一张表,在表中可以通过两个不同的列来进行关联,表达出父与子【包含与被包含】的关系。

    案例:网站的动态菜单

    建表

    生成代码

    实体类

    dao接口

    映射文件  (本质是通过主键和外键的关系)

    测试

    成功

    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    zzuli2470: 迷宫
    zzuli2460: 楼上真的是签到题
    zzuli2460: 楼上真的是签到题
    洛谷P1044 :栈(卡特兰数)
    洛谷P1044 :栈(卡特兰数)
    洛谷P1056:排座椅(贪心)
    代码块地址
    tabBarItem动画
    vim Podfile
    webView进度条
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11780091.html
Copyright © 2011-2022 走看看