resultType与resultMap的区别
- IT业界
- 2025-09-02 09:09:02

resultType:直接指定返回类型,适用于查询结果集中的列名(字段名)与Java实体类中的属性名完全对应的情况。此时,MyBatis会自动进行列名与属性名的映射,无需定义resultMap。resultMap:用于定义详细的映射关系,适用于查询结果集中的列名(字段名)与Java实体类中的属性名不一致的情况或需要进行复杂映射的情况。通过resultMap可以精确控制列名与属性名的映射关系,适用于一对一、一对多等复杂映射场景。 实际应用中的例子
1.假设有一个用户表user,其字段包括 id、username、password,对应的Java对象为User类,属性为 idx、usernamex、passwordx。如果数据库字段名与Java对象属性名不一致,就需要使用resultMap来定义映射关系:(select标签的resultMap的值是 上面定义的resultMap)
<resultMap id="userMap" type="com.yykj.beans.User"> <id column="id" property="idx" jdbcType="INTEGER"/> <result column="username" property="usernamex" jdbcType="VARCHAR"/> <result column="password" property="passwordx" jdbcType="VARCHAR"/> </resultMap> <select id="selectById" resultMap="userMap"> select * from user </select>2.如果字段名与属性名一致,则可以直接使用resultType,resultType的值是对应实体类 User 的路径:
<select id="selectUser" resultType="com.yykj.beans.User"> SELECT id, username, password FROM user </select>resultType与resultMap的区别由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“resultType与resultMap的区别”