MyBatis多边联查(使用实体类保存返回值,在mapper.xml中自定义返回值类型)

本文展示了如何在MyBatis中自定义resultMap,以User类为例,详细配置了包括用户信息和角色信息在内的字段映射。同时,提供了相应的SQL查询语句,用于根据用户ID获取用户及其角色的详细数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体类

package org.fh.entity.system;

import org.fh.entity.Page;

public class User {
	private String USER_ID;		//用户id
	private String USERNAME;	//用户名
	private String PASSWORD; 	//密码
	private String NAME;		//姓名
	private String ROLE_ID;		//角色id
	private String ROLE_IDS;	//副职角色id
	private String LAST_LOGIN;	//最后登录时间
	private String IP;			//用户登录ip地址
	private String STATUS;		//状态
	private Role role;			//角色对象
	private Page page;			//分页对象
	private String SKIN;		//皮肤
}

在mapper.xml中自定义返回值类型

<resultMap type="User" id="userAndRoleResultMap">
		<id column="USER_ID" property="USER_ID"/>
		<result column="USERNAME" property="USERNAME"/>
		<result column="PASSWORD" property="PASSWORD"/>
		<result column="NAME" property="NAME"/>
		<result column="LAST_LOGIN" property="LAST_LOGIN"/>
		<result column="IP" property="IP"/>
		<result column="STATUS" property="STATUS"/>
		<result column="SKIN" property="SKIN"/>
		<result column="ROLE_IDS" property="ROLE_IDS"/>
		<association property="role" column="ROLE_ID" javaType="Role">
			<id column="ROLE_ID" property="ROLE_ID"/>
			<result column="ROLE_NAME" property="ROLE_NAME"/>
			<result column="ROLE_RIGHTS" property="RIGHTS"/>
			<result column="ADD_QX" property="ADD_QX"/>
			<result column="DEL_QX" property="DEL_QX"/>
			<result column="EDIT_QX" property="EDIT_QX"/>
			<result column="CHA_QX" property="CHA_QX"/>
		</association>
	</resultMap>

SQL语句

resultMap为返回值类型

<select id="getUserAndRoleById" parameterType="String" resultMap="userAndRoleResultMap">
		select  u.USER_ID,
				u.USERNAME,
				u.NAME,
				u.PASSWORD,
				u.SKIN,
				u.NUMBER,
				u.ROLE_IDS,
				r.ROLE_ID,
				r.ROLE_NAME,
				r.RIGHTS as ROLE_RIGHTS,
				r.ADD_QX,
				r.DEL_QX,
				r.EDIT_QX,
				r.CHA_QX
		from 
		<include refid="tableName"></include> u 
		left join 
		<include refid="roleTableName"></include> r 
		on u.ROLE_ID=r.ROLE_ID 
		where u.STATUS=0 
		and u.USER_ID=#{USER_ID}
	</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值