Mybatis之JSON篇:mysql查询结果转JSON篇(resultMap与resultType)
今天因为前端方面的需求,需要把对mysql数据库的查询结果集转成JSON格式,结果就出现问题了,折腾了一下午才找到解决办法。
首先先把遇到的问题说出来:
<select id="listTicket" resultMap="hashmap" > select a,b,c from table </select>
查询返回的结果集为
[{a=09:00:00, b=1, c=100.0},
{a=10:00:00, b=1, c=100.0}]
这种格式。
在使用JSONArray.fromObject()将该结果转JSON时,返回的结果一直为空,应该是转换失败,该方法无法识别需要转换的内容。
由于使用的resultMap=“hashmap”,并且a、b、c并不全是某个JavaBean中的属性,所以也无法通过get()方法获得。
在网上查阅了众多文章之后,最后得出的解决办法为:
- 将resultMap="hashmap"改为resultType=“CustomMap”,CustomMap为自定义的映射
<resultMap id="CustomMap" type="com.hai.util.CustomTable" >
<id property="a" column="A" />
<result property="b" column="B"/>
<result property="c" column="C"/>
</resultMap>
type=“com.hai.util.CustomTable” 中的CustomTable为新建的一个实体类,在里面定义了属性a、b、c。
这下返回的List<CustomTable>
终于可以成功转换成JSON
[{“a”:“09:00:00”,“b”:1,“c”:100},
{“a”:“10:00:00”,“b”:1,“c”:100}]
里面的值也可以用方法get()拿到了。
- 本人也是刚刚学习mybatis没多久,也是第一次写博客,不妥之处请多多包涵,希望看了这篇文章后能帮到你,谢谢。