![](/img/trans.png)
[英]What is the best way to deploy a Java desktop application to multiple platforms?
[英]What's the best way to persist data in a Java Desktop Application?
我的桌面應用程序中有一個龐大的Java對象樹,我正在嘗試確定將它們作為文件保存到文件系統的最佳方法。
我的一些想法是:
使用DataOutputStream滾動我自己的序列化程序 :這將使我能夠最大程度地控制文件中的內容,但代價是對其進行微觀管理。
使用ObjectOutputStream及其各種相關類的直接舊序列化 :雖然因為我發現數據很脆弱,但我沒有賣掉它。 更改任何對象的結構會破壞它的序列化實例。 所以我被鎖定在似乎是一個可怕的版本化噩夢。
XML序列化 :它並不那么脆弱,但直接序列化的速度要慢得多。 它可以在我的程序之外進行轉換。
JavaDB :我考慮過這一點,因為我很樂意編寫JDBC應用程序。 這里的區別在於數據庫實例僅在打開或保存文件時保持不變。 它並不漂亮但是......如果以后需要,它確實可以遷移到中央服務器架構,它引入了以更簡單的方式查詢數據模型的可能性。
我很想知道其他人的想法。 而且我希望我錯過了一些比上面更明顯,更簡單的方法。
以下是從以下答案中剔除的更多選項:
看看Hibernate是一種更簡單的數據庫接口方式。
db4objects可能是最好的選擇
來自codehaus.org的XStream
XML序列化/反序列化很大程度上沒有編碼。 您可以使用注釋來調整它。 在我工作的兩個項目中運作良好。
請參閱http://cjugaustralia.org/?p=61上的用戶組演示文稿
我認為這取決於你需要什么。 我們來看看選項:
1)誹謗我! 我甚至都不能證明這一點。 :)
2)如果你需要一個簡單,快速,單一方法的持久性,堅持下去。 它將保持完整的數據圖原樣! 要小心你要堅持持久的物體多久。 正如您自己所指出的,版本控制可能是一個問題。
3)比(2)慢,需要額外的代碼並且可以由用戶編輯。 我只會使用它,數據應該被另一種語言的客戶端使用。
4)如果您需要以任何方式查詢數據,請堅持使用數據庫解決方案。
好吧,我想你已經回答了你的問題:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.