起初我的應用程序要訪問MySQL數據庫,但一切都改變了,現在它必須從XML文件讀取,它將從只讀取。從MySQL XML轉儲中查詢POJO
基本思路是:
1.管理員應用程序保存到MySQL。
2.管理應用程序生成一個MySQL xml轉儲(mysqldump工具)。
3.應用程序將xml發送到客戶端。
4.客戶端查詢xml。
也許有更聰明的方式來建築這個,但現在這不是重點。 有沒有像XML - 關係這樣的Hibernate來做到這一點,我怎麼能做到這一點?
起初我的應用程序要訪問MySQL數據庫,但一切都改變了,現在它必須從XML文件讀取,它將從只讀取。從MySQL XML轉儲中查詢POJO
基本思路是:
1.管理員應用程序保存到MySQL。
2.管理應用程序生成一個MySQL xml轉儲(mysqldump工具)。
3.應用程序將xml發送到客戶端。
4.客戶端查詢xml。
也許有更聰明的方式來建築這個,但現在這不是重點。 有沒有像XML - 關係這樣的Hibernate來做到這一點,我怎麼能做到這一點?
使用XStream創建我的xml(而不是使用MySQL轉儲)並反序列化它。像魅力一樣工作。
我遵循的步驟。
創建一個Bean作爲我的根節點,這個bean擁有所有其他bean的列表。
做了一個xstream.toXML(myRootBean)並將它寫入一個xml文件。
另一方面,讀取文件並執行xstream.fromXML()將其轉換爲myRootBean。
然後,只需訪問列表,像myRootBean.getPotatoList()
重要的是注意,你必須設置別名,並toxml用於前fromXML每個類。
xstream.alias(「potatos」,List.class);
xstream.alias(「potato」,Potato.class);
XML將會有多大?要大到加載到RAM或不?如果不是太大,請加載並使用XPath。我推薦JDOM。如果太大,而且您不允許製作任何其他文件,請使用流式XPath解決方案(請參閱this SO post),但那麼您遇到了相當大的問題。性能將會非常糟糕。如果你可以將它轉換爲另一個文件,你可能會發現一個適合你的嵌入式數據庫(Derby,Hypersonic ...)。
XML不是很大。我目前沒有當前的大小,但我確定它可以在運行時完全加載。 – 2012-04-16 03:18:28