2013-07-21 12 views
0

我有一個對象,它的內容我想保存在mysql中。我現在正在做的是將其轉換爲JSON並將其寫爲文本。如果我需要閱讀它,我解碼JSON並創建相同的對象。但是我看到我可以將對象保存爲MySQL數據庫,並將其作爲對象讀取,然後將其轉換爲我的類。我不需要有能力在json中搜索。將數據保存爲db原樣或作爲json?

可以說這是我的目標:

class bus extends car{ 
    private int seats; 
    private Person driver; 

    public bus(Person driver){ 
    super(); 
    this.seats = 50; 
    this.driver = driver; 
    } 
} 

那麼,什麼是首選的方式(時間,編碼,內存使用情況等)? 什麼是在mysql數據庫中保存這種對象的正確方法?

回答

0

與其將其保存爲JSON,您可以使用xstream並將您的類序列化爲xml,然後將其作爲'clob'保存到數據庫。一旦你使用xstream反序列化,它將返回對象,所以你不必手動轉換。 xstream也支持序列化爲json。

http://x-stream.github.io/

http://x-stream.github.io/json-tutorial.html

+0

mysql中沒有'CLOB',只有'TEXT'或'BLOB'。你可以添加一個例子與數據庫的工作,我設法保存它,但是當我得到的XML返回我不能將其轉換爲原始對象.. – Nir

+0

@nir是否使用xstream反序列化內容? –

+0

我設法解決它(問題在我的代碼中)。然而插入到2mb大小與漂亮的精益對象。這似乎太多了。 – Nir

0

如果您不需要通過這種格式提供的選項不是考慮到使用標準的方式 - 二進制格式基於系列化

有益處

  1. 非常更少的空間消耗
  2. 不需要第三方l IBS
  3. 出的現成的解決方案,因爲Java的

考慮使用特殊ORM工具這個原因。它將大大簡化您的任務並節省您的時間。

有ORM工具 1.休眠 2. MyBatis的 3. Eclipse的鏈接 4.彈簧JDBC

使用其中一個讓你專注於一個業務點,而不是低水平的概念