Java PreparedStatement는 Null 값을 명시 적으로 설정할 수있는 가능성을 제공합니다. 이 가능성은 다음과 같습니다.
prepStmt.setNull(parameterIndex, Types.VARCHAR);
이 호출의 의미는 널 매개 변수와 함께 특정 setType을 사용할 때와 동일합니까?
prepStmt.setString(null);
?
답변:
이 가이드 는 다음과 같이 말합니다.
6.1.5 JDBC NULL을 IN 매개 변수로 보내기
프로그래머는 setNull 메소드를 사용하여 JDBC NULL (일반 SQL NULL) 값을 IN 매개 변수로 데이터베이스에 보낼 수 있습니다. 그러나 매개 변수의 JDBC 유형을 지정해야합니다.
Java null 값이 setXXX 메서드에 전달 될 때 JDBC NULL도 데이터베이스로 전송됩니다 (Java 개체를 인수로 사용하는 경우). 그러나 setObject 메소드는 JDBC 유형이 지정된 경우에만 널값을 가질 수 있습니다.
네, 그들은 동등합니다.