通过java在MySql中存储字符串数组?

我在java程序中有一个String数组。 我使用jdbc驱动程序在MySql中存储数据。

有一个引用变量“pstmt”,它引用一个预准备语句

现在我想调用以下方法:

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

其中“items”是指String数组,但方法setArray()采用java.sql.Array而不是String数组。

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

你这样做,

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

通常,当您尝试将数组存储在RDBM中时,表明您需要进一步规范化数据模型。 即,您可以设置另一个表与当前表的外键关系,然后将数组的每个元素存储在新表中。

据我所知, setArray(int i, Array x)java.sql.Array是一个用于检索和实现SQL3 ARRAY数据类型的接口,不能以您想要使用它的方式使用。

顺便说一句,根据JDBC规范,实现Array是可选的 ,我不认为MySQL的驱动程序提供了一个实现。