MyBatis的返回参数类型分两种
1. 对应的分类为:
1.1.resultMap:
1.2.resultType:
2 .对应返回值类型:
2.1.resultMap:结果集
2.2.resultType:int,string ,long ,class
3. 注意点:
在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
3.1 当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时
候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
3.2 当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
4.案例
4.1:resultMap案例
**[html]** [view plain](http://blog.csdn.net/u010235716/article/details/51698787#) [copy](http://blog.csdn.net/u010235716/article/details/51698787#)
<div>
<embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_1" data-mce-fragment="1">
</embed>
</div>
</div>
- <span class="tag"><</span><span class="tag-name">select</span> <span class="attribute">id</span>=<span class="attribute-value">“selectByPrimaryKey”</span> <span class="attribute">resultMap</span>=<span class="attribute-value">“BaseResultMap”</span> <span class="attribute">parameterType</span>=<span class="attribute-value">“java.lang.Long”</span> <span class="tag">></span>
- select
- <span class="tag"><</span><span class="tag-name">include</span> <span class="attribute">refid</span>=<span class="attribute-value">“Base_Column_List”</span> <span class="tag">/></span>
- from common_car_make
- where <span class="attribute">id</span> = #{id,<span class="attribute">jdbcType</span>=<span class="attribute-value">BIGINT</span>}
- <span class="tag"></</span><span class="tag-name">select</span><span class="tag">></span>
4.2 resultType–long案例
**[html]** [view plain](http://blog.csdn.net/u010235716/article/details/51698787#) [copy](http://blog.csdn.net/u010235716/article/details/51698787#)
<div>
<embed id="ZeroClipboardMovie_2" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_2" data-mce-fragment="1">
</embed>
</div>
</div>
- <span class="tag"><</span><span class="tag-name">select</span> <span class="attribute">id</span>=<span class="attribute-value">“queryCarTypeByModelIdCount”</span> <span class="attribute">resultType</span>=<span class="attribute-value">“java.lang.Long”</span> <span class="attribute">parameterType</span>=<span class="attribute-value">“java.util.Map”</span><span class="tag">></span>
- select count(*) from common_car_type cm
- where <span class="attribute">1</span>=<span class="attribute-value">1</span>
- <span class="tag"><</span><span class="tag-name">if</span> <span class="attribute">test</span>=<span class="attribute-value">“carModelId != null”</span><span class="tag">></span>
- and <span class="attribute">cm.car_model_id</span> = #{carModelId,<span class="attribute">jdbcType</span>=<span class="attribute-value">DECIMAL</span>}
- <span class="tag"></</span><span class="tag-name">if</span><span class="tag">></span>
- <span class="tag"></</span><span class="tag-name">select</span><span class="tag">></span>
4.3 resultType–int案例
**[html]** [view plain](http://blog.csdn.net/u010235716/article/details/51698787#) [copy](http://blog.csdn.net/u010235716/article/details/51698787#)
<div>
<embed id="ZeroClipboardMovie_3" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_3" data-mce-fragment="1">
</embed>
</div>
</div>
- <span class="tag"><</span><span class="tag-name">select</span> <span class="attribute">id</span>=<span class="attribute-value">“queryCategoryBrandCount”</span> <span class="attribute">resultType</span>=<span class="attribute-value">“java.lang.Integer”</span> <span class="attribute">parameterType</span>=<span class="attribute-value">“java.util.HashMap”</span> <span class="tag">></span>
- select count(1)
- from common_category_brand
- where <span class="attribute">1</span>=<span class="attribute-value">1</span>
- <span class="tag"><</span><span class="tag-name">if</span> <span class="attribute">test</span>=<span class="attribute-value">“categoryId != null”</span> <span class="tag">></span>
- and <span class="attribute">category_id</span> = #{categoryId,<span class="attribute">jdbcType</span>=<span class="attribute-value">BIGINT</span>}
- <span class="tag"></</span><span class="tag-name">if</span><span class="tag">></span>
- <span class="tag"><</span><span class="tag-name">if</span> <span class="attribute">test</span>=<span class="attribute-value">“brandId != null”</span> <span class="tag">></span>
- and <span class="attribute">brand_id</span> = #{brandId,<span class="attribute">jdbcType</span>=<span class="attribute-value">BIGINT</span>}
- <span class="tag"></</span><span class="tag-name">if</span><span class="tag">></span>
- <span class="tag"></</span><span class="tag-name">select</span><span class="tag">></span>
4.4 resultType–class案例:查询结果对应类中的属性值
**[html]** [view plain](http://blog.csdn.net/u010235716/article/details/51698787#) [copy](http://blog.csdn.net/u010235716/article/details/51698787#)
<div>
<embed id="ZeroClipboardMovie_4" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_4" data-mce-fragment="1">
</embed>
</div>
</div>
- <span class="tag"><</span><span class="tag-name">select</span> <span class="attribute">id</span>=<span class="attribute-value">“selectCommonBrand”</span> <span class="attribute">resultType</span>=<span class="attribute-value">“com.epeit.api.model.CommonBrandPo”</span> <span class="attribute">parameterType</span>=<span class="attribute-value">“java.lang.Long”</span> <span class="tag">></span>
- select
- id, brand_name brandName, brand_type brandType, icon, delete_flag deleteFlag
- from common_brand
- where <span class="attribute">id</span> = #{id,<span class="attribute">jdbcType</span>=<span class="attribute-value">BIGINT</span>}
- <span class="tag"></</span><span class="tag-name">select</span><span class="tag">></span>
💬 评论