我打算使用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.组织/产品/).
如果你比xql更熟悉xml,我认为在一个小项目中使用xml数据库没什么大不了的.只需构建您的代码,以便大多数程序不关心存储是什么(即通过提供中性接口).然后,如果xml不能解决问题,你可以通过重新实现该接口并单独留下你的程序的其余部分来切换到sql(如果它确实有效,请回到这里说这样 - 知道会很有趣).