itsource

Prepared Statement set Null(..)

mycopycode 2022. 10. 15. 09:29
반응형

Prepared Statement set Null(..)

Java Prepared Statement는 Null 값을 명확하게 설정할 수 있습니다.이 가능성은 다음과 같습니다.

prepStmt.setNull(parameterIndex, Types.VARCHAR);

이 호출의 의미는 특정 setType을 null 파라미터와 함께 사용하는 경우와 같습니까?

prepStmt.setString(null);

?

하지만 이것만은 조심해요...

Long nullLong = null;

preparedStatement.setLong( nullLong );

-늘 포인터 예외를 나타냅니다.

왜냐하면 프로타입은

setLong( long )   

것은 아니다.

setLong( Long )

잘 찾아오셨네요

가이드에는 다음과 같이 기재되어 있습니다.

6.1.5 IN 파라미터로서 JDBC NULL을 송신

setNull메서드는 프로그래머가 JDBC를 전송할 수 있도록 합니다.NULL(일반 SQL)NULL) 값을 IN 파라미터로 데이터베이스에 지정합니다.단, 파라미터의 JDBC 유형을 지정해야 합니다.

A JDBCNULL또한 Java가 데이터베이스로 전송됩니다.null값이 에 전달됩니다.setXXXmethod(Java 객체를 인수로 사용하는 경우).방법setObject단, 에서는nullJDBC 타입은 JDBC 타입이 지정되어 있는 경우만.

그래, 그들은 동등해.

마지막으로 작은 테스트를 실시했습니다.프로그래밍 중에 set Null(..) 메서드가 없으면 Java 프리미티브의 null 값을 설정할 수 없다는 생각이 들었습니다.객체의 경우 양방향

setNull(..)

그리고.

set<ClassName>(.., null)) 

똑같이 행동하다

또, 다음의 기능을 사용할 수도 있습니다.preparedStatement.setObject(index,value,type);

preparedStatement.setNull(index, java.sql.Types.NULL);

모든 타입에서 사용할 수 있습니다.SQL의 경우 다음과 같이 서버 측에서 장애가 발생할 수 있습니다.

COALESCE(?, CURRENT_TIMESTAMP)

Oracle 18XE잘못된 유형으로 실패함: 예상됨DATE,얻었다STRING--그것은 완전히 유효한 실패입니다.

요점: 전화를 걸면 유형을 알 수 있습니다..setNull()

업데이트: stackoverflow는 여기에 있는 투고에 구두점을 추가 및 삭제하기 위해 편집자를 더 고용해야 합니다.

언급URL : https://stackoverflow.com/questions/1357429/preparedstatement-setnull

반응형