如何将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);

解决方法

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