Prepared 문 INSERT에서 테이블 이름 변수 사용
Java ReadyStatement 객체를 사용하여 일련의 일괄 INSERT 쿼리를 작성할 때 많은 개발자는 테이블 이름 변수를 쿼리에 추가해야 하는 문제에 직면합니다. 이는 동일한 열 형식을 사용하는 여러 테이블로 작업할 때 종종 바람직합니다.
쿼리 문에서 테이블 이름을 "?" 변수에 하드코딩하려고 하면 오류가 발생할 수 있습니다. 대신 테이블 이름을 변수로 유지하고 일괄 쿼리를 실행하기 전에 동적으로 채워야 합니다.
일부 사람들은 stmt.setString(1, "tableName1")을 사용하여 테이블 이름을 동적으로 설정하려고 시도할 수 있지만 이는 ReadyStatement에서는 불가능합니다. 대신, 쿼리 및 테이블 이름을 preparedStatement에 할당하기 전에 함께 연결하거나 형식을 지정해야 합니다.
해결책:
문자열 연결 또는 String.format 메서드를 사용하여 SQL 쿼리를 동적으로 구성할 수 있습니다. 테이블 이름은 ReadyStatement의 변수가 아니라 정적 쿼리 문자열의 일부입니다.
예:
<code class="language-java">String tableName = "tableName1"; // 将表名连接到查询中 String query = String.format("INSERT INTO %s (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);", tableName); PreparedStatement stmt = connection.prepareStatement(query);</code>
PreparedStatement에 쿼리 문자열을 할당하기 전에 쿼리 문자열을 동적으로 구성하면 각 삽입 문이 적절한 테이블로 연결되도록 할 수 있습니다.
위 내용은 preparedStatement INSERT 쿼리에서 테이블 이름 변수를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!