我有这样的方法来使用JDBC插入数据,它将根据Java类型插入值。像这样的:
Object o = map.get( key );
if( o == null ) {
// setNull( index );
} else if( o instanceof String ) {
// setString( index, (String) o );
} else if( o instanceof Timestamp ) {
// setTimestampt( index, ( Timestamp ) o );
} else if( o instanceof Integer ) {
// setInt( index, (Integer) o );
}
index++;
但它有一个问题(旁边都是评论:p)
如果
o
是空的,我必须使用
"setNull(int, int)"
方法,但
我必须指定sql类型
:
…
注释
:必须指定参数的SQL类型。
但是…我不知道类型,所以我考虑使用always varchar(只是因为)
setNull( index,Types.VARCHAR); .
如果我总是使用varchar在prepared语句中设置null会发生什么?
我正在使用:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
使用Oracle JDB驱动程序:
11.1.0.7.0-Production ( ojdbc6.jar )
还有别的选择吗?