Mybatis ResultType 和 ResultMap

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/Stephen_mu/article/details/88321463