如何将 int [] 数组转换为 java.sql.Array

How to convert an int [] Array into a java.sql.Array

我正在尝试将一些整数值附加到我的数据库中,我已经制作了这个准备好的语句

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

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

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

我想 convert/cast 它以便我可以做这样的事情:

stmt.setArray(1,correctarray);

您需要通过连接创建一个JDBC数组实例。但这只接受 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() 不能用于将一个数组附加到另​​一个数组。如果将数组传递给 PreparedStatement,则需要使用 array_cat()