2012-09-16 110 views
1

我正在使用Java。我有一個叫做Command的類。這個對象類存儲了一個基本參數變量List(主要是int和double)。參數的類型,數量和順序對每個命令都是特定的,所以List是Object類型。我不會根據這些參數值是什麼來查詢表,所以我想我會將它們連接成單個字符串或以某種方式序列化它們。我認爲這可能是一個更好的方法,使桌子正常化,因爲我必須每次參加比賽,這張桌子的增長速度會非常快。 (編輯:Command對象還存儲一些其他不會被序列化的成員,如字符串來標識命令的類型,以及它發佈時的時間戳。)在數據庫的單列中存儲各種對象類型

所以我有兩個問題: 應該我把它們變成一個分隔字符串?如果是這樣,我怎麼得到每個對象作爲一個字符串,而不知道哪種類型投它們?我試圖循環並使用.toString方法,但這不起作用。它似乎返回null。

或者有什麼方法可以將數組的數據序列化到數據庫的列中?我讀過序列化,它似乎是序列化整個類的上下文。

回答

2

我會使用JSON串行器和解串器如Jackson來存儲和檢索DB中的這些命令對象,而不會丟失特定的類型信息。在附註中,我會讓這些命令實現一個通用接口並將它們存儲在命令列表中,而不是存儲在對象列表中。

+0

我想我明白你要去哪裏了。爲了澄清,整個對象不會被序列化。只是參數。還有一些其他命令成員,我將存儲在單獨的列中進行查詢,例如標識命令類型的Timestamp和String。 – bzuillsmith

+0

對,你可以序列化你想要的屬性。從長遠來看,結構化串行器/解串器與adhoc級聯/分離邏輯相比總是更好。 – Vikdor