> Java > java지도 시간 > 단일 Java 문에서 여러 SQL 쿼리를 어떻게 실행할 수 있습니까?

단일 Java 문에서 여러 SQL 쿼리를 어떻게 실행할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-21 09:50:13
원래의
658명이 탐색했습니다.

How Can I Execute Multiple SQL Queries in a Single Java Statement?

단일 문에서 Java의 여러 쿼리 실행

JDBC는 일반적으로 단일 문에서 여러 쿼리를 실행하려고 하면 예외를 발생시킵니다. MySQL의 쿼리 브라우저에서 사용할 수 있는 기능입니다. 그러나 이 기능을 용이하게 하는 두 가지 접근 방식이 있습니다.

접근 방법 1: 다중 쿼리 구성

데이터베이스 URL에서 "allowMultiQueries" 연결 속성을 "true"로 설정합니다. 세미콜론으로 구분된 여러 쿼리를 활성화합니다. 이는 연결 요청 시 지정되어야 합니다.

String dbUrl = "jdbc:mysql:///test?allowMultiQueries=true";
로그인 후 복사

"executeBatch"를 사용하는 대신 "execute(String sql)"를 사용하여 쿼리 실행 결과를 검색합니다. 결과를 반복하고 다음 단계를 사용하여 처리합니다.

boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
READING_QUERY_RESULTS:
while (hasMoreElementsResultSets || stmt.getUpdateCount() != -1) {
    if (hasMoreElementsResultSets) {
        ResultSet rs = stmt.getResultSet();
        // Handle result set here
    } else { // DDL/DML operation
        int queryResult = stmt.getUpdateCount();
        if (queryResult == -1) { // No more queries
            break READING_QUERY_RESULTS;
        }
        // Handle success, failure, or generated keys here
    }
    hasMoreElementsResultSets = stmt.getMoreResults();
}
로그인 후 복사

접근 방법 2: 커서를 사용하는 저장 프로시저

다음을 포함하여 여러 쿼리를 실행하는 저장 프로시저를 만듭니다. select 및 DML 문. "CallableStatement"를 사용하여 Java에서 이 프로시저를 호출하세요. 이 접근 방식을 사용하면 여러 ResultSet를 캡처할 수 있습니다. 단, DML 결과는 직접 캡쳐할 수 없습니다.

CallableStatement cstmt = con.prepareCall("call multi_query()");
boolean hasMoreResultSets = cstmt.execute();
READING_QUERY_RESULTS:
while (hasMoreElementsResultSets) {
    ResultSet rs = stmt.getResultSet();
    // Handle result set here
}
로그인 후 복사

위 내용은 단일 Java 문에서 여러 SQL 쿼리를 어떻게 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿