집 >데이터 베이스 >MySQL 튜토리얼 >JDBC를 사용한 후 삽입 ID를 검색하는 방법은 무엇입니까?
JDBC를 사용하여 새로 삽입된 레코드 ID에 액세스
이 가이드에서는 JDBC를 사용하여 데이터베이스 레코드를 삽입한 후 자동으로 생성된 ID를 검색하는 방법을 자세히 설명합니다. 데이터베이스 시스템에 따라 여러 가지 접근 방식이 있습니다.
활용 Statement#getGeneratedKeys()
자동 생성 키를 지원하는 데이터베이스의 경우 Statement#getGeneratedKeys()
메서드가 간단한 솔루션을 제공합니다. 이 메서드는 생성된 키가 포함된 ResultSet
을 반환합니다. 결정적으로 명령문을 준비할 때 Statement.RETURN_GENERATED_KEYS
를 지정하여 JDBC 드라이버에 이러한 키를 반환하도록 지시해야 합니다.
예시:
<code class="language-java">try ( Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); ) { // Set statement parameters // ... int affectedRows = statement.executeUpdate(); if (affectedRows == 0) { throw new SQLException("Record insertion failed, no rows affected."); } try (ResultSet generatedKeys = statement.getGeneratedKeys()) { if (generatedKeys.next()) { user.setId(generatedKeys.getLong(1)); } else { throw new SQLException("Record insertion failed, no ID obtained."); } } }</code>
데이터베이스별 대안
Statement#getGeneratedKeys()
이 모든 JDBC 드라이버에서 보편적으로 지원되는 것은 아니라는 점에 유의하는 것이 중요합니다. 특정 데이터베이스 시스템에 대한 대체 방법이 있습니다.
CallableStatement
절과 함께 RETURNING
을 사용하거나 삽입 작업 후에 SELECT CURRVAL(sequencename)
쿼리를 실행하세요.Statement#getGeneratedKeys()
을 지원합니다.Statement#getGeneratedKeys()
을 지원합니다.위 내용은 JDBC를 사용한 후 삽입 ID를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!