기타 보관함/개발자정보

Java, mariadb 환경에서 SQL를 수행하여 특정 컬럼 리턴 여부 검사하는 자바 소스

오아름 샘 2025. 5. 19. 17:06
반응형
import java.sql.*;

public class SqlResultValidator {

    public static void main(String[] args) {
        String sql = "SELECT resultCode, resultMessage FROM your_table"; // 테스트용 SQL
        try (Connection conn = DriverManager.getConnection(
                "jdbc:mariadb://127.0.0.1:3306/your_database", "root", "9909");
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql)) {

            if (validateColumns(rs, "resultCode", "resultMessage")) {
                System.out.println("✅ SQL 실행 결과에 resultCode와 resultMessage 컬럼이 포함되어 있습니다.");
            } else {
                System.err.println("❌ SQL 실행 결과에 필수 컬럼(resultCode, resultMessage)이 포함되어 있지 않습니다.");
            }

        } catch (SQLException e) {
            System.err.println("SQL 실행 중 오류 발생: " + e.getMessage());
        }
    }

    private static boolean validateColumns(ResultSet rs, String... requiredColumns) throws SQLException {
        ResultSetMetaData metaData = rs.getMetaData();
        int columnCount = metaData.getColumnCount();
        for (String requiredColumn : requiredColumns) {
            boolean found = false;
            for (int i = 1; i <= columnCount; i++) {
                if (requiredColumn.equalsIgnoreCase(metaData.getColumnLabel(i))) {
                    found = true;
                    break;
                }
            }
            if (!found) return false;
        }
        return true;
    }
}
반응형