db2驱动程序返回smallint的java.lang.Integer

db2驱动程序返回smallint的java.lang.Integer,java,jdbc,db2,Java,Jdbc,Db2,问题是数据库中有一个smallint类型,而驱动程序返回一个整数类型。我在运行时执行一些逻辑,然后尝试使用DB之前提供的类型将值插入数据库中 我希望DB2返回一个java.lang.Short,但我不确定这是否可行 以前有人遇到过这种情况吗?您是如何解决的 基本问题是——我在DB2数据库中有int列和smallint列,我需要java代码根据结果集确定哪个是哪个 谢谢。与其依赖返回的Java对象的类型,不如向resultset查询列的实际数据库类型: while(rs.next()){

问题是数据库中有一个smallint类型,而驱动程序返回一个整数类型。我在运行时执行一些逻辑,然后尝试使用DB之前提供的类型将值插入数据库中

我希望DB2返回一个java.lang.Short,但我不确定这是否可行

以前有人遇到过这种情况吗?您是如何解决的

基本问题是——我在DB2数据库中有int列和smallint列,我需要java代码根据结果集确定哪个是哪个


谢谢。

与其依赖返回的Java对象的类型,不如向resultset查询列的实际数据库类型:

while(rs.next()){
          Object o = rs.getObject(i);
          System.out.println(o.getClass()); //prints java.lang.Integer
}


看。javadoc是如此宝贵的信息源

我试过了。对于int和smallint columns.Aha,类型仍然是整数。int值是有意义的。你回答的第一个电话没有帮助,但第二个电话是。
String databaseTypeName = resultSet.getMetadata().getColumnTypeName(columnIndex);
int sqlType = resultSet.getMetadata().getColumnType();
boolean isSmallInt = (sqlType == Types.SMALLINT);