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">&#8220;selectByPrimaryKey&#8221;</span> <span class="attribute">resultMap</span>=<span class="attribute-value">&#8220;BaseResultMap&#8221;</span> <span class="attribute">parameterType</span>=<span class="attribute-value">&#8220;java.lang.Long&#8221;</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">&#8220;Base_Column_List&#8221;</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">&#8220;queryCarTypeByModelIdCount&#8221;</span> <span class="attribute">resultType</span>=<span class="attribute-value">&#8220;java.lang.Long&#8221;</span> <span class="attribute">parameterType</span>=<span class="attribute-value">&#8220;java.util.Map&#8221;</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">&#8220;carModelId != null&#8221;</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">&#8220;queryCategoryBrandCount&#8221;</span> <span class="attribute">resultType</span>=<span class="attribute-value">&#8220;java.lang.Integer&#8221;</span> <span class="attribute">parameterType</span>=<span class="attribute-value">&#8220;java.util.HashMap&#8221;</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">&#8220;categoryId != null&#8221;</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">&#8220;brandId != null&#8221;</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">&#8220;selectCommonBrand&#8221;</span> <span class="attribute">resultType</span>=<span class="attribute-value">&#8220;com.epeit.api.model.CommonBrandPo&#8221;</span> <span class="attribute">parameterType</span>=<span class="attribute-value">&#8220;java.lang.Long&#8221;</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>

 

💬 评论