select THEKEY,COUNT(THEVALUE) thevalue from table group by THEKEYMa_mybatis 查询时创建一个新key">
当前位置:   article > 正文

MyBatis实现查询时自动插入key、value_mybatis 查询时创建一个新key

mybatis 查询时创建一个新key

今天想做2个Map的循环遍历,发现自己从数据库中取出来的数据key、value值错误。

通过DEBUG找原因发现时从数据库取出数据时,MaBatis没有自动帮我插入对应的key、value。

原代码:

  1. xml:
  2. <select id="xxx" resultType="java.util.Map">
  3. select THEKEY,COUNT(THEVALUE) thevalue from table
  4. group by THEKEY
  5. </select>
  1. Mapper:
  2. List<Map<String, Integer>> xxx();

通过查阅发现还有很多方法可以实现,通过插件、重写拦截器,以及接下来我要讲的<resultMap>,

它是MyBatis最强大的元素,它可以讲复杂数据映射到一个结果集中。

<resultMap>描述:

  1. <resultMap id="对应数据名" type="要映射的对象类型">
  2. <id column="表的主键字段,或者可以为查询语句中的别名字段" jdbcType="字段类型" property="可以把他当作映射字段的名字" />
  3. <result column="表的一个字段(可以为任意表的一个字段)" jdbcType="字段类型" property="映射到pojo对象的一个属性(须为type定义的pojo对象中的一个属性)"/>
  4. <association property="pojo的一个对象属性" javaType="pojo关联的pojo对象">
  5. <id column="关联pojo对象对应表的主键字段" jdbcType="字段类型" property="关联pojo对象的主席属性"/>
  6. <result column="任意表的字段" jdbcType="字段类型" property="关联pojo对象的属性"/>
  7. </association>
  8. <!-- 集合中的property须为oftype定义的pojo对象的属性-->
  9. <collection property="pojo的集合属性" ofType="集合中的pojo对象">
  10. <id column="集合中pojo对象对应的表的主键字段" jdbcType="字段类型" property="集合中pojo对象的主键属性" />
  11. <result column="可以为任意表的字段" jdbcType="字段类型" property="集合中的pojo对象的属性" />
  12. </collection>
  13. </resultMap>
  14. <!-- 如果collection标签是使用嵌套查询,格式如下:-->
  15. <collection column="传递给嵌套查询语句的字段参数" property="pojo对象中集合属性" ofType="集合属性中的pojo对象" select="嵌套的查询语句" >
  16. </collection>

我们点进mybatis-x-mapper.dtd中可以看见他有多少个属性(可以随便找一个属性ctrl+左键)

简单的实现:

  1. <resultMap id="xxx" type="java.util.Map">
  2. <result colunm="THEKEY" property="key" jdbcType="VARCHAR" />
  3. <result colunm="TEHVALUE" property="value" jdbcType="VARCHAR />
  4. </resultMap>
  5. <select id="xx" resultMap="xxx">
  6. select THEKEY,COUNT(THEVALUE) THEVALUE FROM TABLE
  7. GROUP BY THEKEY
  8. </select>
  1. Mapper:
  2. List<Map<String, Integer>> xxx();

到此我们就解决了对应的插入问题。

值得注意的是,使用ORACLE数据库查询的字段始终是大写。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/241348?site
推荐阅读
相关标签
  

闽ICP备14008679号