0

我有这种方法来使用 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的值为 null,我需要使用“setNull(int, int)”方法,但我必须指定 SQL 类型

...注意:您必须指定参数的 SQL 类型。

但是......我不知道类型,所以我正在考虑总是使用 VARCHAR (只是因为)

setNull( index,Types.VARCHAR); .

如果我总是在准备好的语句中使用 varchar 设置 null 会发生什么?

我在用着:

Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

使用 Oracle JDB 驱动程序:

11.1.0.7.0-Production ( ojdbc6.jar ) 

什么是替代方案?

4

1 回答 1

2

难道不能通过ResultSetMetaData接口查询数据库并获取列类型吗?

于 2009-07-31T23:00:15.617 回答