我们在设计表的时候往往一个表的外键作为另一张表的主键,那么我们在查询的时候就要查询两个表的数据。

下面来说下实现的方法。

数据库表的结构

wc_user实体类


public class WcUser implements Serializable {//用户idprivate String userId;//用户密码private String userPassword;//是否被锁定,0锁定,1没锁private String userActive;

wc_user_roles实体类

public class WcUserRoles implements Serializable {//用户idprivate String userId;//用户角色private String userRole;

由于要连表查询所以我们还要创建一个表,只有把另一个类添加进来就好了。

public class WcUserAll {private String userId;private String userPassword;private String userActive;private WcUserRoles wcUserRoles;public WcUserAll(String userId, String userPassword, String userActive) {super();this.userId = userId;this.userPassword = userPassword;this.userActive = userActive;}

在WcUserMapper.xml写一个WcUserAll类的resultMap,然后使用左外连接(left join)就可以实现连表查询了

 <resultMap id="WithRoleResultMap" type="com.smxy.wechat.pojo.WcUserAll"><id column="user_id" property="userId" jdbcType="VARCHAR" /><result column="user_password" property="userPassword"jdbcType="VARCHAR" /><result column="user_active" property="userActive" jdbcType="VARCHAR" /><association property="wcUserRoles" javaType="com.smxy.wechat.pojo.WcUserRoles"><id column="user_id" property="userId" jdbcType="VARCHAR" /><result column="user_role" property="userRole" jdbcType="VARCHAR" /></association></resultMap><select id="selectRoleByPrimaryKey" resultMap="WithRoleResultMap"parameterType="java.lang.String">select<include refid="withRole_Column_List" />from wc_user aleft joinwc_user_roles b on a.`user_id`=b.`user_id`where a.user_id=#{userId,jdbcType=VARCHAR}</select>

在Controller调用selectRoleByPrimaryKey该方法就可以查询了

查询结果如下图

mybatis连表查询相关推荐

  1. MyBatis多表查询之XML和注解实现(resultMap结果集映射配置数据库字段与实体类属性一一映射)

    MyBatis多表查询 多表模型分类 一对一:在任意一方建立外键,关联对方的主键. 一对多:在多的一方建立外键,关联一的一方的主键. 多对多:借助中间表,中间表至少两个字段,分别关联两张表的主键. 数 ...

  2. Mybatis—多表查询

    Mybatis多表查询 一对一查询 一对一查询的模型MapperScannerConfigurer 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 创建Order和User实体 ...

  3. java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】...

    第1章 Mybatis 连接池与事务深入 1.1 Mybatis 的连接池技术 1.1.1 Mybatis 连接池的分类 1.1.2 Mybatis 中数据源的配置 1.1.3 Mybatis 中 D ...

  4. mybatis多表查询(一对多,多对一,多对多)

    mybatis多表查询.多对一,一对多,多对多 多对一.一对多 准备阶段 建立dept实体类和emp实体类 建立Dao接口 写Dao的Mapper映射 多对多 多对一.一对多 准备阶段 建立一个部门表 ...

  5. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

  6. Mybatis多表查询之一对多、多对一

    目录 前言 一.建立数据库 二.多对一查询 2.1 编写实体类 2.2 编写接口 2.3 编写Mapper配置文件 (StudentMapper.xml) 2.4 多对一查询结果 三.一对多查询 3. ...

  7. mybatis联表查询且统计数据

    mybatis联表查询且统计数据 表1的数据+表2的数据的统计==>vo接收 前端原型图如下: 涉及到两张表 t_record t_user_record 详情A/B A:未签收人数 B:全部人 ...

  8. 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)

    视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实 ...

  9. Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系

    完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...

  10. mybatis多表查询出来的实体如何映射_mybatis进阶案例之多表查询

    mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...

最新文章

  1. 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)
  2. mysql中date转sqlserver_MySQL和SQLServer互转
  3. C++中友元类使用场合
  4. 【leetcode】Best Time to Buy and Sell Stock
  5. 2013.11.13
  6. jq校验输入框值变化时_谈谈自己对CRC校验的理解
  7. [独家放送]Unity2020规划预览,可视化编程又双叒叕来了!
  8. 开热点给电脑消耗大吗_你试过爬楼梯减肥吗?热量消耗大,选对姿势很重要!...
  9. 利用自定义注解实现权限验证
  10. 科普:Flutter应用打包、修改图标、修改启动页和app名字、加固后重新V1V2签名
  11. 无线降噪耳机推荐,热销火爆的四款降噪耳机推荐
  12. java xjc_java – XJC的最新官方版本是什么?我在哪里可以获得它?
  13. 特征值(eigenvalue)特征向量(eigenvector)特征值分解(eigenvalue decomposition)
  14. 市净率PB,市盈率PE
  15. 万智牌天使恩典oracle,万智牌幻灭时刻限制赛单卡再评价(上)
  16. 公司倒闭后不注销有什么后果?不注销公司的几大结果
  17. 头条一面:亿级数据怎么统计?
  18. 博易大师数据导出工具
  19. 云南计算机专业本科学校,云南七成高校开设计算机专业 就业形势不容乐观
  20. flstudio插件找不到_FLstudio如何安装插件?

热门文章

  1. java获取不重复订单号,Java 生成永不重复的订单号
  2. 木马病毒能损害计算机硬盘么,电脑中病毒或木马后有什么表现
  3. DataGear 自定义数据可视化图表插件
  4. spring boot大学生综合素质测评系统 毕业设计-附源码162308
  5. 汇佳学校家长专栏|家校携手,共创“教育的第三种选择”
  6. 软件测试经典面试题汇总附答案
  7. 计算机拆硬盘后黑屏,就这水平还说懂电脑,客户到店退货:装上硬盘电脑开机就黑屏了!...
  8. 程序设计原则之迪米特原则
  9. 在 FEKO 的 CADFEKO 中创建弧线的方法
  10. 基于Java的一款磁力搜索工具,支持自定义xpath