programing

JDBC(mariaDB)를 통해 선택한 행의 기본 키 값을 검색하는 방법

powerit 2023. 8. 26. 12:25
반응형

JDBC(mariaDB)를 통해 선택한 행의 기본 키 값을 검색하는 방법

JDBC에서 선택한 레코드의 기본 키 값을 가져오는 데 문제가 있습니다.테이블 이름을 키로 하고 기본 키 이름을 값으로 하는 HashMap을 가지고 있으며 사용자가 선택한 테이블 이름을 찾고 기본 키 이름을 얻기 위해 반복하고 있습니다.이때까지는 모든 것이 정상적으로 작동하지만 기본 키 값을 가져오려고 하면 항상 0이 반환됩니다.

제가 사용하고 있는 서버는 MariaDB 2.4.1에서 실행되고 있으며 Java 1.8을 사용하고 있습니다.아래는 사용자 입력의 일치와 기본 키 이름의 할당을 담당하는 for 루프입니다.try catch 문 안에서 기본 키 값을 가져오려고 하지만 항상 0을 반환합니다.기본 키는 데이터베이스에서 자동 증분으로 설정되며 값은 데이터베이스에서 정상적으로 업데이트됩니다.

for (Map.Entry hashMap : getTablesWithPrimaryKeys().entrySet()) {
    if (getTableName().compareTo(hashMap.getKey().toString()) == 0) {
        setPrimaryKey((String)hashMap.getValue());
        System.out.println(getPrimaryKey());

        try {
            PreparedStatement statement = connection.prepareStatement("SELECT * FROM " + tableName, Statement.RETURN_GENERATED_KEYS);
            statement.executeQuery();
            ResultSet resultSet = statement.getGeneratedKeys();

            if (resultSet.next()) {
                setPrimaryKeyValue(resultSet.getLong(1));
                System.out.println(getPrimaryKeyValue());
            }

            connection.close();
        } catch (SQLException exception) {
            exception.printStackTrace();
        }
    }
}

예외가 발생하지 않기 때문에 여기서 확실히 누락된 부분이 있습니다.도와드릴까요?

언급URL : https://stackoverflow.com/questions/57233456/how-to-retrieve-primary-key-value-of-selected-row-through-jdbc-mariadb

반응형