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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL联合索引使用分析 彻底搞清楚什么情况下会走索引

    MySQL联合索引使用分析 彻底搞清楚什么情况下会走索引1.建表CREATETABLE`t_demo`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`a`varchar(15)DEFAULTNULL,`b`varchar(15)DEFAULTNULL,`c`varchar(15)DEFAULTNULL,`d`varchar(15)DEFAULTNULL,PRIMARYKEY(`id`),KEY`INDEX_A_B_C`(`a`,`b`,`c`

    2022年6月4日
    63
  • netstat和netstat -ano

    netstat和netstat -ano(1)在命令行窗口中输入netstat后应该怎能读呢?本机地址为10.1.127.144,本机的52051端口正在和IP地址为183.192.164.67的8864端口进行通信,而且通信使用的是TCP协议(本机使用52021端口,对方使用8864端口)(2)在命令行中输入netstat-ano可以看出多了PID这一列(表示是PID为这个数的程序正在占用某个端口和外部某台机器的某个端口进行通信)所以netstat-ano比netstat能显示更多的信息,是升级版本,plus版本

    2022年10月21日
    4
  • 好用的pycharm插件_手机flash player插件

    好用的pycharm插件_手机flash player插件PyCharm无敌插件推荐(一)插件安装途径Step1在文件(File)菜单中选择设置(Settings)Step2在编辑器(Editor)菜单中选择插件(Plugins)二级1.Chinese(Simplified)LanguagePack这是一款JetBrains官方自己推出的汉化插件,对于不是很擅长的英语的初学者十分友好。能够帮助初学者尽快熟悉PyCharm。…

    2022年8月26日
    8
  • 数据库锁概述[通俗易懂]

    数据库锁概述[通俗易懂]行锁和表锁主要是针对锁粒度划分的,一般分为行锁、表锁、库锁行锁:访问数据库的时候,锁定整个行数据,防止并发错误。表锁:访问数据库的时候,锁定整个表数据,防止并发错误。二者的区别:表锁:开销小,加锁快,不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低。行锁:开销大,加锁慢,会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。乐观锁和悲观锁乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据,可以使用版

    2022年6月18日
    45
  • python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」

    python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」Python的学习者中,有相当一部分是冲着爬虫去的。因为爬虫可以帮你解决很多工作和生活中的问题,节约你的生命。不过Python还有一个神秘而有趣的应用领域,那就是量化交易。量化交易,就是以数学模型替代人的主观判断来制定交易策略。通常会借助计算机程序来进行策略的计算和验证,最终也常直接用程序根据策略设定的规则自动进行交易。Python由于开发方便,工具库丰富,尤其科学计算方面的支持很强大,所…

    2022年10月8日
    2
  • Nginx 路由转发和反向代理 location 配置「建议收藏」

    Nginx 路由转发和反向代理 location 配置「建议收藏」Nginx配置直接替换location匹配部分proxy_pass的目标地址,默认不带/,表示只代理域名,url和参数部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL)proxy_pass的目标地址后增加/,则表示把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址例子例如下面的配置,当我们访问http://44.179.118.54:80/shop/xxx的时候访问

    2022年10月19日
    3

发表回复

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

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