2011-11-26 20 views
3

我想構建一個輕量級的「數據庫」支持的應用程序,其中數據可以存儲在XML中,並使用jaxB將數據移入和移出持久狀態。如何將XML文件用作數據庫並通過JAX-B API訪問它?

但是,我還沒有找到任何有關使用XML文件作爲活動應用程序數據庫的好資源---雖然這是一種非正統的方法,但對於我的特定應用程序來說,它是理想的(小數據,需要是用戶可編輯的,用戶足夠聰明,可以編輯XML而不用搞砸了).....

我的擔憂很明顯:鎖定/交易/ etc ...除非有人已經解決了這些問題,否則它可能是嘗試將XML文件用作實時數據存儲的錯誤主意。我一分鐘不需要100筆交易......但是對數據完整性的某種程度的支持當然是符合我的最大利益的。

這樣的JaxB應用程序有沒有先例?

+0

你有沒有考慮過使用sqlite,但? – ustun

+1

也許你應該考慮使用XML數據庫(eXist-db是開源的,值得一試)。這正是用例。 –

回答

3

您可以使用DataNucleus frameowrk,它讓您使用JDO訪問「數據庫」。數據庫可以是XML檔案(其他)。因此,如果您決定在任何時候遷移到RDBMS,影響將會最小化。檢查以下文檔:

DataNucleus將支持持續/ XML從檢索對象/ 文件(使用DataNucleus將-XML插件)。它使用JAXB。

http://www.datanucleus.org/products/accessplatform_3_0/xml/support.html

0

這不應該是很困難的:如果你沒有查詢內容,但只是ID查找,您可以存儲XML內容BLOB(注:CLOB的並不好,儘管什麼許多人認爲)。如果是這樣,則使用JAXB(來自POJO的byte [],來自byte []的POJO)進行序列化/反序列化,並使用JDBC將其傳遞給數據庫。

0

也許你會想用xPath,使「查詢」您的文件... syntax here

使用DAO輕鬆地組織你的信息..

,但如果它是一個輕量級的應用程序..爲什麼不你用過SQLite嗎? ...它真的很容易使用和用戶不需要任何端口打開或什麼..

相關問題