ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

@Results、@Result和@ResultMap的使用

2022-01-20 01:34:15  阅读:260  来源: 互联网

标签:column ResultMap Results resultMap user id Result


@Results、@Result和@ResultMap的使用

mybatis在使用XML配置时,可以通过标签组定义结果映射集,那么到注解时,怎么处理呢?

使用@Results注解来标注之前的resultMap,使用@ResultMap来标注结果集引用的resultMap。

简而言之就是,@Results和@Result用来完成resultMap,定义好一个resultMap结果映射集后,可以在别处使用@ResultMap引用其id实现引用。

XML方式

<!-- resultMap 设置返回值的类型和映射关系 -->
	<resultMap id="userMap" type="cn.mybatis.xml.model.SysUser">
		<id property="id" column="id"/>
		<result property="userName" column="user_name"/>
		<result property="userPassword" column="user_password"/>
		<result property="userEmail" column="user_email"/>
		<result property="userInfo" column="user_info"/>
		<result property="headImg" column="head_img" jdbcType="BLOB"/>
		<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
	</resultMap>

在使用时,使用resultMap引用其id:

<select id="selectUserByUserId" resultMap="userMap">
		select id,user_name,user_password,user_email,user_info,head_img,create_time from sys_user where id = #{id}
	</select>

注解方式

@Select({"select id,user_name,user_password,user_email,user_info,head_img,create_time from sys_user where id = #{id}"})
	@Results(id="userMap", value={
			@Result(column="id", property="id", id=true),
		    @Result(column="user_name", property="userName"),
		    @Result(column="user_password ", property="userPassword"),
		    @Result(column="user_email", property="userEmail"),
		    @Result(column="user_info", property="userInfo"),
		    @Result(column="head_img", property="headImg", jdbcType=JdbcType.BLOB),
		    @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP)
	})
	SysUser selectUserByUserId(Long id);
	
	@Select({"select * from sys_user"})
	@ResultMap("userMap")
	List<SysUser> selectUsers();

此处,@Results注解表示属性信息为一个resultMap,id则是命名空间内识别该resultMap的唯一标识,column和property及其其他属性与在resultMap标签内定义方式相同。

此处的定义,@Results注解必须与@Select查询同方法在一起,不可以单独定义@Results注解,会不被识别的。定义后,在其他方法处,便可以使用该@Results定义的resultMap了。

标签:column,ResultMap,Results,resultMap,user,id,Result
来源: https://www.cnblogs.com/dogeleft/p/15824822.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有