2017-09-28 8 views
0

Java MyBatis는 비교적 새로운 기능입니다. MyBatis에서 SQL Builder 클래스를 보았습니다. 그러나 SELECT SQL 쿼리의 결과를 처리하는 방법을 이해할 수 없습니다. 특히 SQL 작성기를 사용하는 동안 각 경우마다 열이 달라질 수 있습니다. 이 글을 쓰는 방법을 이해하는 데 도움이되는 예제가 있습니까?Mybatis SQL Builder로 데이터 반환 유형 처리

일반적으로 ResultMap과 함께 Mapper XML 파일을 사용하여 SQL 문의 출력을 검색합니다.

답변

0

나는 그것이 작동하도록하는 방법을 알아 냈습니다. 그것이 올바른 방법인지 나는 확신하지 못한다. XML에서

은 내가 QueryBuilder 클래스에서 전달되는 다음 항목

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

$ {조회}하게하고 resultType은 "지도"로 설정되어 있습니다. 이로 인해 myBatis는 목록의 각 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; 
}