首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java小型專案持久化新選擇:XML儲存方案完整實作

     編輯:Java 程式設計入門

適用場景與設計目標

針對輕量級應用(桌面程式、小型Web專案),關聯式資料庫過於龐大,OO資料庫學習曲線陡峭。XML憑藉人類可讀、跨平台、無需額外安裝等優勢,成為極佳替代方案。本文實作具備CRUD、執行緒安全、記憶體快取(檔案遺失仍可運作)的XML持久層。

架構分層:Service與Persistence協作

  • MemberService:業務邏輯門面,內建Hashtable快取,提供同步化的add/delete/update,查詢支援MemberFilter策略模式。
  • MemberPersistence:專責XML檔案I/O,基於dom4j解析/寫入,拋出XmlFileReadException/XmlFileWriteException統一錯誤處理。

關鍵實作細節

同步化寫入策略:先持久化後快取

synchronized (lockObj) {
    try {
        memberPersistence.add(member); // 先寫檔
        members.put(member.getId(), member); // 成功才更新快取
        return true;
    } catch (XmlFileWriteException ex) { return false; }
}

此順序保證快取與檔案一致性,避免寫入失敗時需回滾快取的複雜度。

XML結構與dom4j操作

根節點<members>,每筆資料對應<member id="...">含name、age子元素。loadMemberFromFile()啟動時將全量資料載入Hashtable快取;add/update/delete操作修改DOM樹後呼叫writeDocumentToFile()持久化。

查詢靈活性:Filter介面

public interface MemberFilter {
    boolean accept(Member member);
}
// 使用範例
List<Member> adults = service.search(m -> m.getAge() >= 18);

搭配Collections.sort()實現記憶體內排序與篩選,效能足夠應付小規模資料。

總結

此方案以快取為主、檔案為輔,單檔案XML適合萬筆以內資料,兼具開發效率與執行彈性,是中小型Java專案的務實之選。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved