我担心我可能无法真正理解像MySQL这样的数据库软件的实用性,所以这可能是一个容易回答的问题。
我正在编写一个程序,用于存储和访问在程序中使用的动作。它是一个独立的应用程序,意味着它不会连接到互联网或数据库(我印象中需要连接到服务器)。目前,我有一个巨大的.txt文件,它通过一个简单的模式解析(Habitat在每十行,从第七行开始;名称在每第十行,从第一行开始;等等)这很容易解析错误(读取使用指定编码无法识别的数据的问题,因为很多数据是由懒惰的数据输入复制/粘贴)而我只是感觉每个解析一个巨大的.txt文件我想要数据的时间非常低效。另外,我从来没有见过一个已部署的程序,其中包含.txt,称为“我们所有重要的data.txt”。
数据库是答案吗?它们可以简单地用在像这样的基本应用程序中吗?为每只动物写一堂课似乎很傻。我听说XML也可以提供帮助 - 但除了它是一种标记语言外,我几乎一无所知。
总之,我只是不知道如何在应用程序中存储大量数据。一个很好的比喻是:你如何存储字典/百科全书应用程序的数据?
答案 0 :(得分:3)
您是说没有互联网访问权限的独立应用程序无法建立数据库连接?那么你的基本假设是DB在独立应用程序中不存在是错误的。今天的Web应用程序使用浏览器辅助的SQL数据库来存储数据。你所需要的只是实验而不是推测。如果您需要方向,请从轻量级SQLite
开始答案 1 :(得分:0)
虽然数据库无疑是您所描述的应用程序的一个好主意,但我会按照您的方式提出另一个建议,如果您的数据根本不需要改变,那么这可能适合您,并且不存在“巨大”的数量。
Java提供serialise objects的功能,您可以使用它来持久存储和直接从文件中检索对象实例数据。使用这种简单的方法,您可以:
如果您:
,这种方法就足够了即使上述一个或多个内容不成立,它仍然适合您尝试此方法,因此您的下一步可能是使用所谓的对象关系映射工具,如Hibernate或Castor将您的可序列化数据不在文件中,而是在数据库(XML或关系型)中。从那里,您可以使用某些数据库的强大功能来维护和查询您的数据。