[우아한테크코스] 5월 10일 TIL
[JDBC] row를 map으로 반환하기
upstation, downstation id를 Map<Long, Long>
으로 반환해야했다.
더 좋은 방법이 있을 것 같은데 우선 아래와 같이 시도했다.
public Map<Long, Long> findSectionsByLineId(long id) {
String sql = "SELECT UP_STATION_ID, DOWN_STATION_ID FROM SECTION WHERE LINE_ID = ?";
List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql, id);
Map<Long, Long> sections = new HashMap<>();
for(Map<String, Object> result : resultList) {
System.out.println(result.get("UP_STATION_ID"));
sections.put((Long)result.get("UP_STATION_ID"), (Long)result.get("DOWN_STATION_ID"));
}
return sections;
}
[sql] not in의 사용
SELECT UP_STATION_ID FROM SECTION WHERE LINE_ID = ? AND UP_STATION_ID NOT IN (SELECT DOWN_STATION_ID FROM SECTION WHERE LINE_ID = ?)
으로 원하는 값을 도출할 수 있다.