mybatisplus关联表查询_hibernate多表查询

mybatisplus关联表查询_hibernate多表查询我们在设计表的时候往往一个表的外键作为另一张表的主键,那么我们在查询的时候就要查询两个表的数据。下面来说下实现的方法。数据库表的结构wc_user实体类publicclassWcUserimplementsSerializable{ //用户idprivateStringuserId;//用户密码privateStringus…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

下面来说下实现的方法。

数据库表的结构

mybatisplus关联表查询_hibernate多表查询

wc_user实体类


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

wc_user_roles实体类

public class WcUserRoles implements Serializable {
	//用户id
    private 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 a
		left join
		wc_user_roles b on a.`user_id`=b.`user_id`
		where a.user_id=#{userId,jdbcType=VARCHAR}
	</select>

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

查询结果如下图

mybatisplus关联表查询_hibernate多表查询

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193982.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用Diskgenius将U盘分区,分为启动盘和文件存储两大功能详解

    使用Diskgenius将U盘分区,分为启动盘和文件存储两大功能详解DiskGenius是一款集分区办理与数据规复功效的东西软件。它是在最初的DOS版的底子上开辟而成的。准备工作:1.DiskGenius软件2.带有系统的U盘(我是用ULtraISO软件将ISO镜像写入到U盘的,方法:http://jingyan.baidu.com/article/a948d651b0f6a20a2dcd2eae.html)3.电脑第一步:将U盘中的系

    2022年8月11日
    33
  • stat 函数的作用「建议收藏」

    stat 函数的作用「建议收藏」stat()—获得文件状态相关函数:fstat,lstat,chmod,chown,readlink,utime头文件:#include  #include定义函数:intstat(constchar*file_name,structstat*buf);函数说明:stat()用来将参数file_name所指的文件状态,复制到

    2022年8月21日
    4
  • JVM指令重排[通俗易懂]

    JVM指令重排[通俗易懂]参考http://www.infoq.com/cn/articles/java-memory-model-2/点击打开链接数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a=1;b=a;写一个变量之后,再读这个位置。写后写a=1;a=2;写一个变量之后,再写这个变量。读后写a=…

    2022年10月18日
    2
  • python面向对象编程指南 pdf_python面向对象的三个基本特征

    python面向对象编程指南 pdf_python面向对象的三个基本特征虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程。下面就来了解一下如何在Python中进行对象编程。一.如何定义一个类  在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。  类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义:

    2025年6月24日
    3
  • Java 构造函数特点「建议收藏」

    Java 构造函数特点「建议收藏」(1).一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初始化内容。(2).构造函数是在对象建立时由jvm调用,给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。(3).普通函数可以使用对象多次调用,构造函数就在创建对象时调用。(4).构造函数的函数名要与类名一样,而普通的函数只要符合标识符的命名…

    2022年6月17日
    20
  • python爬取对方qq好友_小白工作室QQ

    python爬取对方qq好友_小白工作室QQ当python小白遇到QQ钓鱼网站今天又是和平(无聊)的一天,突然我的qq邮箱接受到一个信息,我向往常一样想着—-这又是一个垃圾信息。但当我打开看到内容时,嗯0.o~~。没错,它吸引了我。嗯??嘿嘿,我满怀期待的点了进去。出现了一个网址,我继续点了进去。我渐渐猜到了答案。哈哈,果然是钓鱼网站,淦!我到底在期待什么。我开始生气了。我f12开始查看源码。花了一点时间终于被我找到了关键的地方。嘿嘿,既然你这么想盗qq号,一个“邪恶”的想法在我心中发芽。这个是点击登录的js代码。又花了一点时间

    2022年8月24日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号