2009-09-16 48 views
2

我有一個Java程序中的字符串數組。我正在使用jdbc驅動程序將數據存儲在MySql中。通過Java在MySql中存儲字符串數組?

有是指事先準備好的聲明

現在我想調用下面的方法的引用變量「數PreparedStatement pstmt」:

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

其中,「項目」指的是字符串數組,但該方法setArray ()需要java.sql.Array而不是String數組。

那麼如何將字符串數組「items」轉換爲java.sql.Array,以便我可以在上述方法調用中傳遞參數。

回答

1

你不喜歡這樣,

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

據我所知,setArray(int i, Array x)java.sql.Array這是一個用於檢索和實現SQL3 ARRAY數據類型的接口,不能以您想使用它的方式使用。

順便說一句,根據JDBC規範實現Array是可選,我不認爲MySQL的驅動提供了一個實現。

4

通常,當您嘗試將數組存儲在RDBM中時,這表示您需要對數據模型進行進一步標準化。即您可以使用與當前表的外鍵關係設置另一個表,然後將該數組的每個元素存儲在新表中。

+0

我喜歡你的觀點,但我的客戶的要求是所有的記錄只保存在一個表中。 我知道這是非常糟糕的方法來管理數據。 – 2009-09-17 07:10:20