programing

PreparedStatement setNull (..)

nasanasas 2020. 10. 14. 07:53
반응형

PreparedStatement setNull (..)


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 유형이 지정된 경우에만 널값을 가질 수 있습니다.

그렇습니다. 그들은 동등합니다.


근데 이거 조심해 ....

Long nullLong = null;

preparedStatement.setLong( nullLong );

-null 포인터 예외 발생-

프로토 타입이

setLong( long )   

아니

setLong( Long )

당신을 잡을 좋은 사람 eh.


마지막으로 작은 테스트를 수행했고 프로그래밍하는 동안 setNull (..) 메서드가 없으면 Java 기본 요소에 대해 null 값을 설정할 방법이 없다는 생각이 들었습니다. 객체의 경우 양방향

setNull(..)

set<ClassName>(.., null)) 

같은 방식으로 행동합니다.


사용을 고려할 수도 있습니다. preparedStatement.setObject(index,value,type);

참고 URL : https://stackoverflow.com/questions/1357429/preparedstatement-setnull

반응형