【发布时间】:2018-01-09 15:46:12
【问题描述】:
我有带有 VALS DOUBLE ARRAY[2000] 字段的 SQL (HSQLDB) 表 我使用返回带有VALS字段的多行的查询 如果我尝试将数组作为
Array array = rs.getArray("VALS");
Double[] vals = (Double[]) array.getArray();
我明白了
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Double;
我可以通过从 Object 到 String 的双重转换然后将 String 解析为 Double 来获取值,例如:
List<Double> values = new ArrayList<Double>();
for (Object o: (Object[])array.getArray()) {
values.add(Double.parseDouble(o.toString()));
}
但看起来开销很大
有没有什么方法可以在不进行字符串转换或多个单行查询的情况下从 Array SQL 字段中获取数字?在调试器中 rs.getArray() 向我展示了一个完美的数字值 JDBCArray ARRAY[0.0E0,0.0E0,0.0E0,0.0E0,0.0E0 .... ]
【问题讨论】: