postgres smallint[]转换成java short[]数组

fwzugrvs  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(375)

我在postgresql中有一个数据库表,其列名为“data”,类型为: smallint[] 我正在尝试将查询中的数据保存到java short[] 我得到以下例外:
java.lang.classcastexception:类[ljava.lang.integer;不能转换为类[i([ljava.lang.integer;和[我在loader'bootstrap'的java.base模块中]“
我的实现:

String sql = "SELECT * FROM table"
res = executeQuery(stmt, temp);

        ArrayList<VO> vos = new ArrayList<>();
        while (res.next()) {
            VO vo = new VO();
            Array ar = res.getArray("data");
            // vo has a private member data : short[]
            vo.setData((short[]) ar.getArray());
        }

引发异常@ vo.setData((short[]) ar.getArray()); ,我想在这里 java.sql.Array 变成一个 short[] 数组。

xdyibdwo

xdyibdwo1#

从错误信息来看 getArray 返回一个 Integer[] . 你得把它换成 short[] 手动:

Integer[] arr = (Integer[]) ar.getArray();
short[] data = new short(arr.length);
for (int i = 0; i < arr.length; ++i) {
    data[i] = arr[i].shortValue();
}

相关问题