java - XML 作为数据存储。插入、移除、删除

标签 java xml database editing

我计划使用 XML 来存储我正在编写的 Java DVD 数据库应用程序的数据。我知道“数据库”这个词就在标题中,但 XML 似乎更具可移植性,更易于人类阅读,而且(我在研究它之前假设)更易于实现。

解析 XML 似乎是世界上最简单的事情......即使创建一个新的 XML 文件也不是很麻烦,但是更改记录、插入或删除它们,我只能通过创建一个新的 XML 来完成文件。

我错过了什么吗?或者是我缺少的东西,我应该切换到数据库格式(但是有一些我没听说过的很棒的数据库格式,它是完全可移植的,用户不需要安装单独的东西来使用:))

最佳答案

将文件用作数据库的最流行方式可能是使用 sqlite http://www.sqlite.org/如果我正在解决您的问题,这就是我会使用的(它几乎是一个标准的 SQL 数据库,但只使用一个文件作为存储)。另一个纯 Java 选项是 apache derby http://db.apache.org/derby/

然而,纯 xml 数据库确实存在(并且在大约 10 年前非常流行 - 当时的“nosql”) - 相关标准是 xpath http://en.wikipedia.org/wiki/XPath和 xquery http://en.wikipedia.org/wiki/Xquery .我没用过,不过好像是basex http://basex.org/open-source/是您可以使用的开源实现(它确实声称提供 ACID 保证 - http://basex.org/products/)。

如果您对 xml 比 sql 更熟悉,我认为在小型项目中使用 xml 数据库没有什么大的危害。只需构建您的代码,以便大多数程序不关心存储是什么(即通过提供中性接口(interface))。然后,如果 xml 无法解决问题,您可以通过仅重新实现该接口(interface)并单独保留程序的其余部分来切换到 sql(如果它确实有效,请在此处发回说明 - 知道这将很有趣)。

关于java - XML 作为数据存储。插入、移除、删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081724/

相关文章:

java - Fragment 内的 RecyclerView 未更新

java - 导入 com.google.android.gcm.GCMRegistrar;

java - PreferenceFragmentCompat 内的 TimePicker(DialogFragment)

java - GWT 编辑器和获取/设置值

xml - 如何使用 local.xml 在 Magento 1.5 中设置默认布局?

JavaScript个人 "highscores"

sql - 微软 Access : why isn't my query from an unrelated table working?

php - 如何将文本写入 XML 文件?

java - Hibernate映射不成功-不知道错误发生在哪里

c# - .Net C# 如何连接到外部 SQL Server 数据库? OleDb 还是其他?