public class ResultColumnChecker {

/**
 * 조회 결과에서 resultFlag와 resultMessage 컬럼이 SELECT 절에 포함되어 있는지 확인합니다.
 *
 * @param resultList iBatis 조회 결과 (List<LinkedHashMap<String, Object>>)
 * @return true: 두 컬럼 모두 존재, false: 둘 중 하나라도 없음
 */
public static boolean checkColumnsInSelect(List<LinkedHashMap<String, Object>> resultList) {
    if (resultList == null || resultList.isEmpty()) {
        return false;
    }

    // 첫 번째 row 기준으로 컬럼 존재 여부 판단
    LinkedHashMap<String, Object> firstRow = resultList.get(0);
    Set<String> columnNames = firstRow.keySet();

    return columnNames.contains("resultFlag") && columnNames.contains("resultMessage");
}

// 사용 예시
public static void main(String[] args) {
    List<LinkedHashMap<String, Object>> resultList = new ArrayList<>();

    LinkedHashMap<String, Object> row = new LinkedHashMap<>();
    row.put("id", 1);
    row.put("resultFlag", null);       // 값은 null이어도 컬럼이 존재하므로 OK
    row.put("resultMessage", "");      // 빈 문자열도 OK

    resultList.add(row);

    boolean hasColumns = checkColumnsInSelect(resultList);
    System.out.println("SELECT 절에 컬럼 존재 여부: " + hasColumns);  // true 출력
}

}

tag: none

댓글추가