0
데이터베이스에 매우 큰 테이블이 있습니다. 필드의 일부는 null 일 수 있습니다.사용을 피하는 방법 PreparedStatement.setNull?
난 그냥 사용에서 탈출 할:
PreparedStatement.setNull(index, Type.X)
처럼 :
if(obj.getSomaData() == null){
insertStmt.setNull(++i, java.sql.Types.VARCHAR);
}else{
insertStmt.setString(++i, obj.getSomaData());
}
이 할 수있는 더 깨끗한 방법은있다를?
추신 : 저는 PostgreSQL을 사용하고 있습니다.
'setNull()'메서드를 사용하고 싶지 않다는 뜻입니까? 데이터를 INSERT하는 경우 기본적으로 NULL 값을 가지므로 NULL 값을 명시 적으로 설정할 필요가 없습니다. –
나는 Postgres JDBC 드라이버가'setString (index, null)'을 아주 잘 처리한다고 생각한다. –
@MickMnemonic 그 열이 insert 문에 포함되지 않은 경우에만 true이고, 포함되어 있으면 JDBC 드라이버는 예외를 주어야한다. 값은 명시 적으로 설정되지 않습니다. JDBC 4.2 섹션 13.2.2를 참조하십시오. _ "PreparedStatement' 객체 ('executeQuery','executeUpdate' 및'execute')를 실행하는 데 사용되는 메소드는 매개 변수 마커에 값이 제공되지 않으면'SQLException'을 throw합니다. "_ –