2013-10-02 2 views
1

지금까지이 모든 것을 조사 해왔다. 나는 같은 대답을 얻는다. 내가 원한 것은 Java에서 jdbc를 사용하여 다른 변수를 하나의 변수에 배치하는 것입니다. 지금까지 내가 얻은 것은 INSERT INTO 테이블 VALUES ('?', '?')와 같은 패턴을 가진 명령문을 일괄 처리하는 것입니다. 이는 preparedstatement를 사용하여 수행 할 수 있습니다. 하지만 java.sql.Statement를 사용하여 다른 유형의 명령문을 일괄 처리하려고 시도했지만 잘 실행되었습니다. 예를 들어 하나의 명령문 아래에있는 업데이트와 삽입은 한 번 커밋합니다. 하지만 이제 java.sql.Statement의 문제점은 preparedStatement가 수행하는 작업, 즉 사람들이 이스케이프 처리하는 작업을 수행한다는 것입니다. 다시 preparedStatement의 문제점은 in과 같은 패턴의 명령문을 일괄 적으로 수행한다는 것입니다. 업데이트 및 삽입 할 수 없습니다. 그것은 두 가지 중 하나 여야합니다.jdbc 배치 다른 문

그래서 지금은 java.sql.Statement를 사용할 것이라고 생각했지만 preparedStatement가하는 일을하는 라이브러리가있다. String은 SQL 주입을 피하기 위해 이스케이프 처리한다. 또한 내가 모르는 다른 용어로 일괄 처리를 오인하고있는 경우 하나의 java.sql.Statement에서 여러 개의 다른 명령문을 실행하기 위해 내가 원하는 것을 알려주고 나에게 올바른 것을 말해 준다.

한 가지 마지막으로, 일괄 처리를 할 때 구문의 유효성 검사가 없다는 것을 깨달았을 때 실행하고있는 동안 모든 오류를 검사 했으므로 Sql의 유효성을 검사 할 수있는 라이브러리에 속할 수도 있습니다.

답변

1

언급 한 내용이 모두 정확합니다.

비슷한 명령문 집합을 배치 할 수 있으며 한 번에 실행할 수 있습니다. 하지만 내 지식에 따라 여러 종류의 명령문을 그룹화하거나 일괄 처리하여 실행되는 Java 라이브러리가 없습니다.

내가 말하고자하는 마지막 것은 SQL 문에서 오류가 발생하면 PreparedStatement 객체를 사용할 때 SQL 문이 한 번만 컴파일된다는 것입니다. 그렇지 않으면 명령문이 실행됩니다. 동일한 명령문이 다른 값으로 데이터베이스에 다시 보내지면, 명령문은 컴파일되지 않고 데이터베이스 서버에 의해 간단히 실행됩니다.