首页 > 解决方案 > 如何将 int [] 数组转换为 java.sql.Array

问题描述

我正在尝试将一些整数值附加到我的数据库中,我已经做了这个准备好的声明

 stmt = connection.prepareStatement("UPDATE domotica.artefatti SET id_sensori = array_append(id_sensori,?) WHERE id=?");

我有一个像这样的整数数组:

int [] integerarray = {values...};

我想转换/转换它,以便我可以做这样的事情:

stmt.setArray(1,correctarray);

标签: javapostgresqlpostgresql-9.5

解决方案


您需要通过连接创建一个 JDBC Array 实例。但这只接受一个,Object[]所以你需要将你的int[]数组转换为:

int[] intlist = {....};
Object[] values = Arrays.stream(intlist).mapToObj(i -> Integer.valueOf(i)).toArray();
Array array = con.createArrayOf("int", values);
pstmt.setArray(1, array);

请注意,array_append()不能用于将一个数组附加到另​​一个数组。array_cat()如果将数组传递给 PreparedStatement,则需要使用。


推荐阅读