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

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

Barbara Streisand
Barbara Streisand원래의
2024-11-29 11:16:12776검색

How Can I Efficiently Insert Multiple Rows into MySQL Using PreparedStatement?

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

MySQL 테이블에 여러 행을 효율적으로 삽입하려고 시도할 때 기존의 preparedStatement 접근 방식으로는 제한 사항에 직면할 수 있습니다. 삽입할 행 수는 preparedstatement에서 미리 결정됩니다.

삽입 프로세스를 최적화하기 위해 MySQL은 다음과 같은 일괄 삽입 구문을 제공합니다.

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

일괄 삽입에 ReadyStatement 사용

사용 ReadyStatement 일괄 삽입 단계는 다음과 같습니다.

  1. addBatch() 사용 메서드는 각 데이터 행을 일괄 처리에 추가합니다.
  2. 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(); // Execute every 1000 items.
            }
        }
    }
}

주의할 점은 일괄 삽입을 수행할 때 특정 행 수마다 수행하는 것을 권장합니다( 예: 1000). 일부 JDBC 드라이버 또는 데이터베이스에는 배치 길이에 제한이 있을 수 있기 때문입니다.

관련 참조:

  • JDBC 튜토리얼 - ReadyStatement 사용
  • JDBC 튜토리얼 - 일괄 업데이트를 위한 명령문 개체 사용

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

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