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没多久,也是第一次写博客,不妥之处请多多包涵,希望看了这篇文章后能帮到你,谢谢。
Logo

更多推荐