gpt4 book ai didi

java - 如何在循环中将数组插入数据库

转载 作者:行者123 更新时间:2023-11-29 04:35:46 24 4
gpt4 key购买 nike

我想在循环中将一组数组插入数据库(HANA)。我的代码如下:

public class jdemo {
public static void main(String[] args) {
Connection connection = null;
try {
connection = DriverManager.getConnection(
"jdbc:sap://myhdb:30715/?autocommit=false",myname,mysecret);
} catch (SQLException e) {
System.err.println("Connection Failed. User/Passwd Error?");
return;
}
if (connection != null) {
try {
int [] array=new int []{1,2,3};
Array array1= connection.createArrayof("Integer",array)
System.out.println("Connection to HANA successful!");
String sql="INSERT INTO TABLE1 VALUES(1,ARRAY(?))"
PreparedStatement stmt = connection.createStatement(sql);
stmt.setArray(int,array1);
stmt.executeUpdate(sql);

} catch (SQLException e) {
System.err.println("Query failed!");
}
}
}
}

但这行不通。我试过

Object [] array=new Object []{1,2,3};

不支持此返回方法创建连接数组。

我的表架构看起来像

ID   MARK
__ ____
10 {1,2,3}
11 {3,2,3}
12 {9,2,3}
13 {10,2,3}
14 {12,24,3}
18 {1,27,3}

我还希望我的数据类型为整数数组。感谢任何帮助。

最佳答案

“ARRAY inserts into HANA”这个话题已经在 SO 上讨论过几次了。HANA 仅支持通过 ARRAY() 函数存储数组。该函数不以列表为参数,仅以单独的元素为参数。

所以,而不是

 String sql="INSERT INTO TABLE1 VALUES(1,ARRAY(?))"

你必须写

String sql="INSERT INTO TABLE1 VALUES(1, ARRAY( 1, 2, 3))"

对于 JDBC 驱动程序:HANA JDBC 不会自动将 JAVA 数组处理为 HANA 数组 - 这是开发人员必须手动执行的操作。(是的,这不好,我知道)。

简而言之:目前(HANA 1.0 SP12)数组基本上可以在内部使用(在存储过程中),但它们不是一等公民数据类型。 (<- 这是我的意见!)

关于java - 如何在循环中将数组插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41625922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com