如何将 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()
。
我正在尝试将一些整数值附加到我的数据库中,我已经制作了这个准备好的语句
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()
。