博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap
2017-02-06 19:04
543 查看
MyBatis中在进行select查询映射的时候,返回类型可以用resultType,也可以用resultMap。resultType表示直接返回类型,而resultMap则是对外部定义的ResultMap引用,resultType跟resultMap二者不能同时存在。首先小博老师给大家介绍下ResultType的使用方法。
1.resultType
MyBatis进行查询映射时,其查询出来的每一个属性都是放在一个对应的Map里面。其中Map键对应属性名,Map值则是其对应的属性值。当定义的返回类型属性是resultType时,MyBatis会遍历Map里面的键值对,并赋值给resultType指定对象相对应的属性。由此可以看出,MyBatis的每一个查询映射的返回类型其实都是ResultMap。只是当我们提供的返回类型属性是resultType的时候,MyBatis会自动转换,把对应的值赋给resultType所指定对象的属性。当我们提供的返回类型是resultMap的时候,由于Map集合不能很好表示领域模型,这就需要我们自己自定义结果集与目标对象的转换关系,一般在复杂查询中resultMap很有用。
如下语句将会返回一个HashMap对象:
![](http://img.blog.csdn.net/20170206190328323?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYndmX2VyZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因为Map对领域模型的表示不够友好,我们也可以直接映射为我们定义的JavaBean,或者POJO对象:
![](http://img.blog.csdn.net/20170206190337635?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYndmX2VyZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其中User是我们定义好的类型别名:
![](http://img.blog.csdn.net/20170206190347509?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYndmX2VyZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这种情况下,MyBatis会自动创建一个ResultMap,基于属性名来映射列到User对象的属性上。
1.resultType
MyBatis进行查询映射时,其查询出来的每一个属性都是放在一个对应的Map里面。其中Map键对应属性名,Map值则是其对应的属性值。当定义的返回类型属性是resultType时,MyBatis会遍历Map里面的键值对,并赋值给resultType指定对象相对应的属性。由此可以看出,MyBatis的每一个查询映射的返回类型其实都是ResultMap。只是当我们提供的返回类型属性是resultType的时候,MyBatis会自动转换,把对应的值赋给resultType所指定对象的属性。当我们提供的返回类型是resultMap的时候,由于Map集合不能很好表示领域模型,这就需要我们自己自定义结果集与目标对象的转换关系,一般在复杂查询中resultMap很有用。
如下语句将会返回一个HashMap对象:
因为Map对领域模型的表示不够友好,我们也可以直接映射为我们定义的JavaBean,或者POJO对象:
其中User是我们定义好的类型别名:
这种情况下,MyBatis会自动创建一个ResultMap,基于属性名来映射列到User对象的属性上。
相关文章推荐
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(2)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(4)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(2)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(3)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor (介绍resultMap中constructor标签的用法)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(4)
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(3)
- 博为峰JavaEE技术文章 ——MyBatis Mapper Select
- 博为峰JavaEE技术文章 ——MyBatis Mapper Insert Update Delete
- 博为峰JavaEE技术文章 ——MyBatis Mapper XML
- 博为峰JavaEE技术文章 ——MyBatis Mapper Insert Update Delete
- 博为峰JavaEE技术文章 ——MyBatis Mapper $与#的区别
- 博为峰JavaEE技术文章 ——MyBatis Mapper $与#的区别
- 博为峰JavaEE技术文章 ——MyBatis Mapper Select
- 博为峰JavaEE技术文章 ——MyBatis Mapper XML
- 博为峰JavaEE技术文章 ——MyBatis Mapper TypeHandler
- 博为峰JavaEE技术文章 ——MyBatis 接口编程