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