前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatisplus关联表查询_hibernate多表查询

mybatisplus关联表查询_hibernate多表查询

作者头像
全栈程序员站长
发布2022-10-05 10:14:53
1.7K0
发布2022-10-05 10:14:53
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

下面来说下实现的方法。

数据库表的结构

mybatisplus关联表查询_hibernate多表查询
mybatisplus关联表查询_hibernate多表查询

wc_user实体类


代码语言:javascript
复制
public class WcUser implements Serializable {
	//用户id
    private String userId;
    //用户密码
    private String userPassword;
    //是否被锁定,0锁定,1没锁
    private String userActive;

wc_user_roles实体类

代码语言:javascript
复制
public class WcUserRoles implements Serializable {
	//用户id
    private String userId;
    //用户角色
    private String userRole;

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

代码语言:javascript
复制
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)就可以实现连表查询了

代码语言:javascript
复制
	<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多表查询
mybatisplus关联表查询_hibernate多表查询

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月14日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档