【问题标题】:Store String Array in MySql through java?通过java在MySql中存储字符串数组?
【发布时间】:2010-11-28 22:40:15
【问题描述】:

我在 java 程序中有一个字符串数组。我正在使用 jdbc 驱动程序将数据存储在 MySql 中。

有一个引用变量“pstmt”引用了一个准备好的语句

现在我想调用以下方法:

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

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

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

【问题讨论】:

    标签: java mysql arrays


    【解决方案1】:

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

    【讨论】:

    • 我喜欢你的观点,但我的客户的要求是将所有记录只存储在一个表中。我知道这是管理数据的非常糟糕的方法。
    【解决方案2】:

    你这样做,

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-08
        • 2012-02-28
        • 2010-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-12
        相关资源
        最近更新 更多