>Java >java지도 시간 >Java ReadyStatements를 사용하여 MySQL에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?

Java ReadyStatements를 사용하여 MySQL에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 01:59:14306검색

How Can I Efficiently Insert Multiple Rows into MySQL Using Java PreparedStatements?

PreparedStatement를 사용하여 MySQL에 여러 행 삽입

한 번에 여러 행을 데이터베이스에 삽입해야 하는 경우가 많습니다. 각 행을 반복하고 삽입 문을 실행하는 기존 방법은 비효율적일 수 있지만 MySQL은 단일 쿼리에 여러 행을 삽입할 수 있는 구문을 제공합니다.

INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]

일괄 처리를 위해 준비된 상태 사용

Java 및 ReadyStatements를 사용하여 이 프로세스를 최적화하려면 preparedStatement 클래스에서 지원하는 일괄 처리를 고려하세요. addBatch()를 사용하여 배치를 생성하면 ExecuteBatch()를 사용하여 그룹으로 실행할 수 있습니다.

코드 예

다음 예는 배치 삽입 방법을 보여줍니다.

public void save(List<Entity> entities) throws SQLException {
    try (
        Connection connection = database.getConnection();
        PreparedStatement statement = connection.prepareStatement(SQL_INSERT);
    ) {
        int i = 0;

        for (Entity entity : entities) {
            statement.setString(1, entity.getSomeProperty());
            // ...
            statement.addBatch();
            i++;

            if (i % 1000 == 0 || i == entities.size()) {
                statement.executeBatch();
            }
        }
    }
}

일괄 실행 최적화

JDBC 드라이버 또는 데이터베이스의 잠재적인 제한을 피하기 위해 1000개 항목마다 일괄 처리가 실행됩니다.

추가 리소스

  • [ JDBC 튜토리얼 - 사용하기 ReadyStatement](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)
  • [JDBC 튜토리얼 - 일괄 업데이트를 위한 명령문 객체 사용](https://docs.oracle .com/javase/tutorial/jdbc/basics/batchupdates.html)

위 내용은 Java ReadyStatements를 사용하여 MySQL에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.