代码之家  ›  专栏  ›  技术社区  ›  OscarRyz

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

  •  0
  • OscarRyz  · 技术社区  · 16 年前

    我有这样的方法来使用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 ) 
    

    还有别的选择吗?

    1 回复  |  直到 11 年前
        1
  •  2
  •   Rob    16 年前

    无法查询数据库并通过 ResultSetMetaData 接口?

    推荐文章