mybatis连表查询
我们在设计表的时候往往一个表的外键作为另一张表的主键,那么我们在查询的时候就要查询两个表的数据。
下面来说下实现的方法。
数据库表的结构
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连表查询相关推荐
- MyBatis多表查询之XML和注解实现(resultMap结果集映射配置数据库字段与实体类属性一一映射)
MyBatis多表查询 多表模型分类 一对一:在任意一方建立外键,关联对方的主键. 一对多:在多的一方建立外键,关联一的一方的主键. 多对多:借助中间表,中间表至少两个字段,分别关联两张表的主键. 数 ...
- Mybatis—多表查询
Mybatis多表查询 一对一查询 一对一查询的模型MapperScannerConfigurer 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 创建Order和User实体 ...
- 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 ...
- mybatis多表查询(一对多,多对一,多对多)
mybatis多表查询.多对一,一对多,多对多 多对一.一对多 准备阶段 建立dept实体类和emp实体类 建立Dao接口 写Dao的Mapper映射 多对多 多对一.一对多 准备阶段 建立一个部门表 ...
- 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多
7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...
- Mybatis多表查询之一对多、多对一
目录 前言 一.建立数据库 二.多对一查询 2.1 编写实体类 2.2 编写接口 2.3 编写Mapper配置文件 (StudentMapper.xml) 2.4 多对一查询结果 三.一对多查询 3. ...
- mybatis联表查询且统计数据
mybatis联表查询且统计数据 表1的数据+表2的数据的统计==>vo接收 前端原型图如下: 涉及到两张表 t_record t_user_record 详情A/B A:未签收人数 B:全部人 ...
- 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)
视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实 ...
- Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系
完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...
- mybatis多表查询出来的实体如何映射_mybatis进阶案例之多表查询
mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...
最新文章
- 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)
- mysql中date转sqlserver_MySQL和SQLServer互转
- C++中友元类使用场合
- 【leetcode】Best Time to Buy and Sell Stock
- 2013.11.13
- jq校验输入框值变化时_谈谈自己对CRC校验的理解
- [独家放送]Unity2020规划预览,可视化编程又双叒叕来了!
- 开热点给电脑消耗大吗_你试过爬楼梯减肥吗?热量消耗大,选对姿势很重要!...
- 利用自定义注解实现权限验证
- 科普:Flutter应用打包、修改图标、修改启动页和app名字、加固后重新V1V2签名
- 无线降噪耳机推荐,热销火爆的四款降噪耳机推荐
- java xjc_java – XJC的最新官方版本是什么?我在哪里可以获得它?
- 特征值(eigenvalue)特征向量(eigenvector)特征值分解(eigenvalue decomposition)
- 市净率PB,市盈率PE
- 万智牌天使恩典oracle,万智牌幻灭时刻限制赛单卡再评价(上)
- 公司倒闭后不注销有什么后果?不注销公司的几大结果
- 头条一面:亿级数据怎么统计?
- 博易大师数据导出工具
- 云南计算机专业本科学校,云南七成高校开设计算机专业 就业形势不容乐观
- flstudio插件找不到_FLstudio如何安装插件?
热门文章
- java获取不重复订单号,Java 生成永不重复的订单号
- 木马病毒能损害计算机硬盘么,电脑中病毒或木马后有什么表现
- DataGear 自定义数据可视化图表插件
- spring boot大学生综合素质测评系统 毕业设计-附源码162308
- 汇佳学校家长专栏|家校携手,共创“教育的第三种选择”
- 软件测试经典面试题汇总附答案
- 计算机拆硬盘后黑屏,就这水平还说懂电脑,客户到店退货:装上硬盘电脑开机就黑屏了!...
- 程序设计原则之迪米特原则
- 在 FEKO 的 CADFEKO 中创建弧线的方法
- 基于Java的一款磁力搜索工具,支持自定义xpath