大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
我们在设计表的时候往往一个表的外键作为另一张表的主键,那么我们在查询的时候就要查询两个表的数据。
下面来说下实现的方法。
数据库表的结构
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该方法就可以查询了
查询结果如下图
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193982.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...