版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Stephen_mu/article/details/88321463
1.使用resultType映射的pojo
1.如果sql查询出来的列名和resultType指定的pojo的属性名存在至少一个一致,则映射成功,否则映射失败。
1.查询出来的列名和pojo属性名全部不一致,就不会创建对象
2.只要查询出来的列名和pojo属性名存在一个一致,则会创建对象。
3.无法实现延迟加载
2.对于一些简单查询,且查询结果较少的查询使用resultType
2.resultMap高级输出结果映射
1.高级映射
将查询列映射到一个pojo属性中
将查询列映射到List<pojo>属性中
2.查询返回结果列名和pojo属性名不一致,通过定义一个resultMap可以实现在查询结果列名和pojo属性名之间做一个映射。
<!-- id:对于resultMap的唯一标识,type:指定返回结果类型,可以使用别名 -->
<resultMap type="celebrity" id="celebrityResultMap">
<!--id:标识查询结果中唯一标识 -->
<!--column:查询出来的列名 -->
<!--property:type指定pojo类型中的属性名 -->
<id column="id" property="c_id"></id>
<!--result:对普通名定义映射 -->
<!--column:查询出来的列名 -->
<!--property:type指定pojo类型中的属性名 -->
<result column="name" property="c_name"></result>
</resultMap>
<!--标签的id属性起到标识标签的作用,同时由于mybatis框架会将sql语句封装到一个MappedStatement底层对象中 -->
<!--1.将SQL语句侧参数通过占位符(#{})提交到动态提交到sql语句中 -->
<!--#{}表示一个占位符 -->
<!--2.将sql语句的返回结果和java实体对象映射 -->
<!--3.parameterType:表示sql语句输入参数的类型,注意如果参数为简单类型,则占位符参数名可以任意定义 -->
<!--4.resultType:表示sql语句执行结果所映射的java对象的类型 (单条记录) -->
<select id="getById" parameterType="int"
resultMap="celebrityResultMap">
select c_id as id, c_name as name from celebrity where c_id=#{value}
</select>
3.可以实现延迟加载
4.对于有特殊要求,查询结果较多的查询使用resultMap