概述
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了。
最后
以上就是等待自行车为你收集整理的@Results与@ResultMap使用的全部内容,希望文章能够帮你解决@Results与@ResultMap使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复