2

我已经在 J​​ava 核心中完成了我的项目通讯簿,其中我的数据存储在数据库(MySql)中。

我面临一个问题,当我在其他计算机上运行我的程序时,需要再次创建孔数据库。

所以请告诉我在不使用任何数据库软件(如 mysql、sql 等)的情况下存储数据的任何替代方法。

4

8 回答 8

6

您可以使用内存数据库,例如HSQLDBDerby(又名JavaDB)、H2、..

所有这些都可以在没有任何额外软件安装的情况下运行,并且可以像另一个库一样运行。

于 2010-02-17T12:40:47.543 回答
4

我建议使用可嵌入的轻量级数据库,例如SQLite。一探究竟。从功能页面(在SQLite 的建议用途部分下):

申请文件格式。与其使用 fopen() 将 XML 或某些专有格式写入应用程序使用的磁盘文件,不如使用 SQLite 数据库。您将避免编写解析器并对其进行故障排除,您的数据将更易于访问和跨平台,并且您的更新将是事务性的。

于 2010-02-17T12:39:49.447 回答
2

StackOverflow 的重点是让您不必围绕问题/答案发送电子邮件:)

您可以将数据存储在文件系统、内存(使用序列化等)中,这些都是 DB 的简单替代品。您甚至可以使用可以完全在内存中运行的 HSQLDB

于 2010-02-17T12:43:28.817 回答
0

mysql、sql 等数据库软件在实现工作方面提供了抽象。如果您希望避免使用相同的,您可以考虑拥有自己的数据库,如 XML 或平面文件。XML 仍然是更好的选择,因为 XML 解析器或处理程序可用。从长远来看,将您的数据放入自定义的数据库/平面文件中将是不可管理的。

你为什么不探索sqlite?它是基于文件的,意味着您不需要单独安装它,并且您仍然拥有标准 SQL 来检索或与数据交互?我认为,sqlite 将是一个更好的选择。

于 2010-02-17T12:43:35.047 回答
0

只需使用 prevayler (.org)。比使用数据库更快、更简单。

于 2010-02-17T13:05:45.403 回答
0

我从你的问题中假设你想要某种形式的持久存储到你的应用程序运行的机器的本地文件系统。除此之外,您还需要决定如何使用应用程序中的数据以及数据量。你需要数据库吗?您要搜索不同字段的数据吗?您需要查询语言吗?数据是否足够小以适合内存中的简单数据结构?它需要有多大的弹性?这些类型问题的答案将有助于正确选择存储。您可能只需要一个简单的 CSV 文件、XML 或类似文件。有许多轻量级数据库,例如 SQLite、Berkelely DB、JavaDB 等 - 但您是否需要数据库的功能取决于您的要求。

于 2010-02-17T13:07:10.330 回答
0

这些天我经常使用的商店是Neo4j。它是一个图形数据库,不仅易于使用,而且完全用 Java 编写并且是嵌入式的。我更喜欢它而不是 SQL 替代方案。

于 2010-02-17T13:09:06.067 回答
0

如果您的数据不是那么大,您可以使用简单的 txt 文件并将所有内容存储在其中。然后将其加载到内存中。但这将导致改变您修改/查询数据的方式。

于 2010-02-17T12:39:58.167 回答