【问题标题】:Handling data return types with Mybatis SQL Builder使用 Mybatis SQL Builder 处理数据返回类型
【发布时间】:2017-09-28 22:48:43
【问题描述】:

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

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

【问题讨论】:

    标签: java mybatis sqlbuilder


    【解决方案1】:

    我想出了让它工作的方法。我不确定这是否是正确的方法。

    在 XML 中我做了以下条目

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

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

    我使用以下代码将 List> 转换为 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-18
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多