Jul*_*lia 5 java postgresql jdbc postgresql-9.1
我在PostgreSQL 9.1中有一个bigint类型的视图.此类型应映射到LongJava,但实际映射到BigInteger.所以
resultSet.getLong(columnPos)
Run Code Online (Sandbox Code Playgroud)
导致ArrayIndexOutOfBoundsException.
resultSet.getBigInteger(columnPos)
Run Code Online (Sandbox Code Playgroud)
要么
resultSet.get(columnPos)
Run Code Online (Sandbox Code Playgroud)
有一个跟随toString和解析工作正常.对此有何正确处理?我应该先BigInteger打电话toString,解析一下Long吗?或者是否有更好的方法来告诉ResultSet或ScrollableResults正确的Java列类型?
谢谢.
数据bigint类型被正确映射到,BigInteger因为它就是这样说的:它是一个大整数,可能不适合 Long。
您可以使用resultSet.get(columnPos)然后检查返回对象的类。
我们为此编写了一个实用程序类,因此我们会执行以下操作:
public Long getLongFromResultSet( ResultSet rs, int columnPos ) {
Object value = rs.get( columnPos );
if( value instanceof Number) { //this should handle any numeric Java type like BigInteger, Long etc.
return ((Number)value).longValue(); //autoboxing here
}
... //handle non-Number cases
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5785 次 |
| 最近记录: |