Mybatis mapper.xml 中resultMap和resultType的区别
一、resultType :
- 指定输出结果的类型,将sql输出结果映射到为 java对象
- 使用resultType时,需要注意此时sql语句的列名必须与指定pojo类的属性名称保持一致,否则无法完成映射。
二、resultMap:
-
如果sql语句的列名必须与指定pojo类的属性名称b不一致,可以利用将列名和属性名做一个对应关系
-
列名和属性名对应配置如下:(在mapper.xml中定义)
<resultMap id="userResultMap" type="com.commom.pojo.User"> <id column="" property=""></id> <result column="" property=""></result> </resultMap>
- 如何使用resultMap
1、如果引用resultMap位置和result Map对应配置在同一个mapper.xml中,则可直接引用resultMap定义的id,如: <select id="findUserResultMap" parameterType="int" resultMap="userResultMap"> SELECT id id_,username username_,sex sex_,birthday birthday_,address address_ FROM USER WHERE id= #{id} </select>
2、如果引用resultMap位置和result Map对应配置不在同一个mapper.xml中,则可直接引用resultMap定义的id,则需要加上 namespace+id 如: <select id="findUserResultMap" parameterType="int" resultMap="userResultMap"> SELECT id id_,username username_,sex sex_,birthday birthday_,address address_ FROM USER WHERE id= #{id} </select>
其中,
1、resultMap标签:
id:为 resultMap标签在mapper.xml文件中的唯一标识,还是statement 对象中resultMap的值
type:最终要映射的pojo类型.
2、id标签 :是映射结果集的唯一标识,即主键
column:结果集的列名,即sql查询的列名
property:type指定的哪个属性
3、result标签:是普通列的映射配置
column:结果集的列名,即sql查询的列名
property:type指定的哪个属性