使用Mybatis SQL Builder处理数据返回类型

时间:2017-09-28 22:48:44

标签: java mybatis sqlbuilder

我对Java MyBatis比较陌生。我在MyBatis中遇到了SQL Builder类。但是,我不明白如何处理SELECT SQL查询的结果,特别是如果在使用SQL Builder时每种情况下列都不同。有没有一个例子可以帮助我理解如何写这个?

通常,我使用带有ResultMap的Mapper XML文件来检索SQL语句的输出。

1 个答案:

答案 0 :(得分:0)

我想出了让它发挥作用的方法。我不确定这是不是正确的方法。

在XML中我做了以下条目

<select id="readSignals" resultType="map">
  ${query}
</select>

$ {query}从QueryBuilder类传递,resultType设置为“map”。这导致myBatis返回List&gt;其中列表中的每个地图都是一行。 String包含列名,Object包含数据。

我使用以下代码转换List&gt;进入JSON。

public static JSONObject convertToJSON(List<Map<String, Object>> queryData) {
  JSONObject queryJSONOutput = new JSONObject();
  JSONArray outputArray = new JSONArray();
  queryData.stream().forEach(d -> {
    JSONObject jsonObject = new JSONObject();
    for (String key: d.keySet()) {
      jsonObject.put(key, d.get(key));
    }
    outputArray.put(jsonObject);
  });
  queryJSONOutput.put("data", outputArray);
  return queryJSONOutput;
}