使用带有 hashmap 的 mybatis 结果的不需要的 Json 结果

Posted

技术标签:

【中文标题】使用带有 hashmap 的 mybatis 结果的不需要的 Json 结果【英文标题】:Unwanted Json result using mybatis result with hashmap 【发布时间】:2012-03-17 12:41:36 【问题描述】:

我的 sqlmap.xml

<select id="getList" resultType="hashmap">
    SELECT A,B,C,D FROM MYTABLE
</select>

结果示例

 A       B      C       D
john    123    math    100
jade    456    math     78
janet   789    math     98

控制器代码

@RequestMapping("/my/result.json")
public @ResponseBody List MyResult()
    return myDAO.getList();

但是,json 结果看起来很混乱,例如,

[
    "B":123,"C":"math","A":"john","D":100,
    "B":456,"C":"math","A":"jade","D":78,
    "B":789,"C":"math","A":"janet","D":98
]

我想通过定义了列名和索引的 sql 获得结果。 但结果是 sql 和 hashmap 之间的列名索引不同。 知道如何获得与 sql 结果相同的 json 结果吗?

【问题讨论】:

【参考方案1】:

要解决这个问题,在sqlmap中,只需将resultType设置为java.util.LinkedHashMap即可:

<select id="getList" resultType="java.util.LinkedHashMap">
    SELECT A,B,C,D FROM MYTABLE
</select>

【讨论】:

以上是关于使用带有 hashmap 的 mybatis 结果的不需要的 Json 结果的主要内容,如果未能解决你的问题,请参考以下文章

mybatis的resulttype为hashmap,java代码怎么写

mybatis selectone 返回为空的问题

带有 HashMap 的装饰器设计模式返回空 HashMap

Mybatis查询select操作

测试Mybatis批量查询和使用HashMap查询效率

Mybatis Mybatis缓存