未预先安装任何内容的Java数据库

问题描述 投票:0回答:3

此问题分为三个部分:

  1. 我目前可能没有词汇来正确地告诉Google我想要什么,而且我也不知道这是否存在,或者是否有可能(当我的Java程序不需要连接到数据库时,它仍称为数据库吗?运行数据库的单独服务器?)。这就是为什么我在这里问这个原因,因为希望找到一个对数据库有更多经验并且可能知道解决方案的人。
  2. 我想在自己的一个项目中为大学练习SQL
  3. 该项目是为那些不想进行长时间的数据库软件安装和启动的人而设计的,他们只想使用可执行的jar文件,因为到目前为止,我所看到的数据库都需要在PC,以便可以通过Java API访问。

总结起来:我正在搜索一个数据库,在其中我可以与在Java中使用SQL查询进行交谈,最好是作为一个简单的外部jar文件,可以将其导入到eclipse项目中。

换句话说,我希望我的可执行jar成为数据库以及Java程序,而不是Java程序,这取决于应该在其上运行的机器上已经安装的Java程序。

这是否可能,它是否存在,在哪里可以找到?预先感谢。

java sql database lib
3个回答
2
投票

您要查找的短语是“嵌入式数据库”。在实际情况下,它们很有用,主要是在需要数据库的桌面应用程序上使用(但显然您不希望依赖已安装了正确数据库的用户。)

周围有一些,这些天它们的可比性非常好。

FWIW,HSQLDB是我过去为满足这种要求而使用的-它支持本机SQL,是纯Java(没有任何底层本机库),并且可以使用基于内存的或基于文件的数据库。

不需要安装,您可以将其作为maven dependency插入。


1
投票

我认为您正在寻找Java嵌入式数据库。这里有两个建议:

HSQLDB

H2

您可以在本文中阅读更多内容:Working with Embedded Databases in Java


1
投票

下面是所有“嵌入式数据库”的列表(嵌入式数据库是一种将数据库管理解决方案嵌入到应用程序中,而不是作为独立的数据库系统提供的数据库技术。)可能有用,]]

HSQLDB(HyperSQL数据库)-http://hsqldb.org/web/hsqlDocsFrame.html

H2-http://www.h2database.com/html/features.html

Apache Derby-https://db.apache.org/derby/

利用“嵌入式数据库”的好处是,您只需要更改连接字符串,就可以立即开始编码(调用sql)。

以下显示正在使用的连接字符串,

对于HSQLDB,可以如下建立连接:

//load the JDBC driver
Class.forName("org.hsqldb.jdbcDriver" );
Connection connection = DriverManager.getConnection("jdbc:hsqldb:testdb", "sa", "");

可以按照以下方式为H2 DB建立连接:

//load the driver
Class.forName("org.h2.Driver" );
Connection connection = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");

可以按照如下方式为Apache Derby DB建立连接:

//load the driver
Class.forName(“org.apache.derby.jdbc.EmbeddedDriver”);
Connection c = DriverManager.getConnection("jdbc:derby:testdb1;create=true”);

从这里开始,只需执行SQL语句即可。继续尝试!您会喜欢的。

© www.soinside.com 2019 - 2024. All rights reserved.