@Results与@ResultMap使用

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

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

例:

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指引到定义好的resultMap

	<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了。

 

  • 15
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值