此问题分为三个部分:
总结起来:我正在搜索一个数据库,在其中我可以与在Java中使用SQL查询进行交谈,最好是作为一个简单的外部jar文件,可以将其导入到eclipse项目中。
换句话说,我希望我的可执行jar成为数据库以及Java程序,而不是Java程序,这取决于应该在其上运行的机器上已经安装的Java程序。
这是否可能,它是否存在,在哪里可以找到?预先感谢。
您要查找的短语是“嵌入式数据库”。在实际情况下,它们很有用,主要是在需要数据库的桌面应用程序上使用(但显然您不希望依赖已安装了正确数据库的用户。)
周围有一些,这些天它们的可比性非常好。
FWIW,HSQLDB是我过去为满足这种要求而使用的-它支持本机SQL,是纯Java(没有任何底层本机库),并且可以使用基于内存的或基于文件的数据库。
不需要安装,您可以将其作为maven dependency插入。
下面是所有“嵌入式数据库”的列表(嵌入式数据库是一种将数据库管理解决方案嵌入到应用程序中,而不是作为独立的数据库系统提供的数据库技术。)可能有用,]]
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语句即可。继续尝试!您会喜欢的。