我的目标是创建一个可以用 Java 读写的本地数据库。我在使用 Python 操作本地 sqlite 数据库以及通过 VB.Net 与 Microsoft Azure 上现有的网络数据库进行交互方面有一些经验,但是用于创建数据库的 Java 公式让我无法理解。
大多数来源(如JDBC Docs)似乎都假设您正在通过网络协议或托管在 localhost 上的数据库访问数据库。我想要的实现是创建数据库并将其存储在一个文件(或文件集合)中,以便可以在本地存储和访问它,而无需网络连接(可能通过“文件:”协议)。
JDBC 教程看起来在我启动并运行后会非常有用,但目前超出了我的范围,因为我什至还没有现有的数据库。
许多 消息来源都提出了 H2、MySQL、Derby 或 Hypersonic DB 等解决方案。但是,出于多种原因,我不愿意安装扩展程序(如果这是正确的术语):
- 这个项目最初是为了帮助我了解 Java ——扩大项目范围会削弱我对“基础”语言的经验,并且可能会增加从事“货物崇拜编程”的诱惑
- 如果这个项目真的被分发给其他用户(诚然不太可能,但仍然如此!),我不想强迫他们安装更多的 Java 核心。
- 我根本不知道如何在 Java 中安装扩展(附加组件?模块?)——一次一步!
出于类似的原因,安装 Microsoft SQL Server 不会有成效。
这个答案看起来接近我的目标;但是,它给出了错误:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/?user=root&password=rootpassword
并尝试“jdbc:file://targetFile.sql”会给出类似的错误。
我见过术语“嵌入式”数据库,我认为它是“本地数据库”的子集(即本地数据库存储在同一系统上 - 嵌入式数据库是仅由单个应用程序使用的本地数据库) - 如果我的定义有误,请随时纠正我!