【问题标题】:Alternative of Storing data except databases like mysql,sql etc存储数据的替代方案,除了 mysql、sql 等数据库
【发布时间】:2010-02-17 12:36:52
【问题描述】:

我在 Java 核心中完成了我的项目通讯录,其中我的数据存储在数据库 (MySql) 中。

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

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

【问题讨论】:

  • 对您的问题的答复属于此处。回复您的电子邮件地址违背了 SO 的目的。另外:在公共网站上发布您的电子邮件地址是获取大量垃圾邮件的一种非常简单的方法。

标签: java database data-storage


【解决方案1】:

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

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

【讨论】:

  • +1。但 Ravi 应该注意,当应用程序关闭时,数据会丢失。
  • @Bruno:不一定。 HSQLDB 可以配置为读取其数据库并将其写入文件。我对其他人没有经验,但我很确定他们也能做到。
  • 是的,这确实有道理。我看不出为什么 db 没有将内存中的数据转储到文件中的功能,以后可以从中加载它。
  • 实际上我面临的问题是安装数据库而不是在所有电脑上使用相同的数据库,我想让它成为全球性的,以便任何人都可以使用它,就像他们使用其他地址存储软件一样.
【解决方案2】:

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

应用程序文件格式。 而不是 使用 fopen() 编写 XML 或一些 专有格式转换为磁盘文件 由您的应用程序使用,使用 而是 SQLite 数据库。你会避免 必须编写和排除故障 解析器,您的数据将更容易 可访问和跨平台,以及 您的更新将是事务性的。

【讨论】:

  • 通常这不是一个坏方法,但由于应用程序似乎已经使用了 JDBC,因此嵌入的支持 JDBC 的数据库可能是这里更好的匹配。另外:据我所知,SQLite 对 Java 不是特别友好。我错了吗?
  • @Joachim Sauer - 我真的不知道,因为我从来没有一起使用过这两者。不过,我确实认为值得建议。
  • 有 SQLJet。 >>>一个流行的 SQLite 数据库管理系统的纯 Java 实现。虽然我也没用过。
【解决方案3】:

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

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

【讨论】:

  • 嘿,冷静,请告诉我这一切都用 Java 完成。如果有任何软件可以帮助我做到这一点并且与java兼容。请告诉我。
【解决方案4】:

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

【讨论】:

  • 你有点我需要这种类型的建议。请告诉我硬件将数据存储在文本文件中
  • 如果您有单一类型的数据(RDBMS 中的一个表),最简单的(我认为)变体是将基础中每一行的日期作为 CSV 存储在 txt 文件中。然后逐行阅读。按分隔符拆分并使用它。希望对您有所帮助)
【解决方案5】:

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

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

【讨论】:

    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          猜你喜欢
          • 2010-10-15
          • 2011-08-21
          • 1970-01-01
          • 1970-01-01
          • 2010-10-23
          • 1970-01-01
          • 2020-09-06
          • 2018-01-30
          • 1970-01-01
          相关资源
          最近更新 更多