java - 如何将 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 实例。但这只接受一个,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,则需要使用。
推荐阅读
- java - 一段时间后 StartForegroundService 停止工作
- python - .query 方法不适用于 flask-sqlalchemy 模型类
- python - Google Analytics 非抽样报告:如何设置目标位置(Google Drive 或 GCS)?
- javascript - 调用 javascript 函数时未捕获的引用错误
- python - numpy - how to slice of an array passed the limit of the array and back to the beginning
- vue.js - IdentityServer4 的 idsrv cookie 中将存储哪些数据?
- android - 从源 tflite 模型构建的 tensorflow-lite-select-tf-ops 和 tensorflow-lite AAR 找不到 org.tensorflow.lite.Interpreter
- karate - 我如何将响应状态从空手道中的另一个功能文件读取到功能文件中
- sql - 在表中搜索相反的值
- javascript - 为什么 alertify 确认取消按钮不起作用?