起初我的应用程序要访问 MySQL 数据库,但一切都改变了,现在它必须从 XML 文件中读取,它只会从中读取。
基本思路是:
1. Admin App持久化到MySQL。
2. Admin App 生成一个 MySQL xml 转储(mysqldump 工具)。
3. 应用程序将 xml 发送给客户端。
4.客户端查询xml。
也许有更聪明的方法来构建它,但现在这不是重点。有没有像 XML 这样的 Hibernate - Relational 来做到这一点,我怎么能做到这一点?
XML 会有多大?是否要加载到 RAM 中?如果不是太大,请加载并使用 XPath。我推荐 JDOM。如果太大并且不允许您制作任何其他文件,请使用流式 XPath 解决方案(请参阅此 SO 帖子),但是您遇到了很大的问题。性能会很糟糕。如果您可以将其转换为另一个文件,您可能会找到适合您的嵌入式数据库(Derby、Hypersonic...)。
结束使用 XStream 创建我的 xml(而不是使用 MySQL 转储)并反序列化它。像魅力一样工作。
我遵循的步骤。
创建了一个 Bean 作为我的根节点,这个 bean 包含所有其他 bean 的列表。
做了一个 xstream.toXML(myRootBean) 并将其写入 xml 文件。
在另一端,读取文件并执行 xstream.fromXML() 将其转换为 myRootBean。
然后只需访问列表,例如 myRootBean.getPotatoList()
请注意,必须在 toXML 和 fromXML 之前为每个类设置别名。
xstream.alias("土豆", List.class);
xstream.alias("土豆", Potato.class);