通过Java将字符串数组存储到MySql中?

3

我在一个Java程序中有一个字符串数组。我正在使用JDBC驱动程序将数据存储在MySQL中。

有一个引用变量“pstmt”指向一个预处理语句。

现在我想调用以下方法:

String [] items = {pen, ball, speaker, mic};  
pstmt.setArray(1, ....);

"items"是指字符串数组,但是setArray()方法需要的是java.sql.Array而不是字符串数组。

那么我该如何将字符串数组“items”转换为java.sql.Array以便在上面的方法调用中传递参数呢?

3个回答

4

通常情况下,当你尝试在关系数据库管理系统中存储一个数组时,这意味着你需要进一步规范化你的数据模型。也就是说,你可以设置另一张表与当前表有外键关系,并将数组的每个元素存储在新表中。


我很欣赏你的观点,但我的客户要求所有记录都只存储在一个表中。我知道这是管理数据的非常糟糕的方法。 - Amit

3
据我所知,setArray(int i, Array x)java.sql.Array 这两个方法无法按照你想要的方式使用。它们是用于检索和实现 SQL3 ARRAY 数据类型的接口。
顺便提一下,根据 JDBC 规范,实现 Array 是可选的,而且我认为 MySQL 的驱动程序没有提供实现。

2

你可以像这样做:

String [] items = {pen, ball, speaker, mic};  
pstmt.setArray(1, pstmt.getConnection().createArrayOf("String", items));

你确定这在实践中可行吗? - Shila Mosammami

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接