我正在尝试为我的学校项目构建一个简单的Java应用程序,并且希望能够使用一个简单的数据库,以便在我的数据库中插入,更新,删除和询问查询。
我需要我的应用程序在安装时随处运行,因此我想使用与应用程序一起提供的本地数据库,并且可以从项目内部对其进行访问,而无需依赖于其他数据库
什么是实现本地数据库的最佳方法?
我考虑过将JDBC用于.csv文件,这是很多工作(?) 或使用HSQLDB并创建嵌入式DB?
您将如何实施?
编辑:
好的,所以我读了一点,发现了这个SQLite tutorial,
public class Main {
public static void main(String[] args) {
try{
Connection conn = DriverManager.getConnection("jdbc:sqlite: (how to set this path?)");
Statement statement = conn.createStatement();
statement.execute("CREATE TABLE CUSTOMERS (name TEXT,phone INTEGER,email TEXT)");
} catch(SQLException el){
System.out.println("somting went wrong" + el.getMessage());
}
}
}
现在我要设置用户文件夹的相对路径,并在用户计算机上设置连接。 我注意到它是写的:
o connect to an in-memory database, you use the following connection string:
jdbc:sqLite::memory
那么,在设置了第一个连接之后,最后,数据库将初始化,然后在部署项目时使用内存路径?
答案 0 :(得分:1)
如果您愿意接受JDBC作为API,请使用真正的嵌入式数据库:hsqldb或h2(或derby)。这比包装csv文件要简单得多。
我将使用H2,因为它可以在嵌入式/服务器混合模式下工作,这将允许您在嵌入式模式下运行应用程序,同时-使用某些外部工具(eclipse / intellij / netbeans /其他) )检查您的数据库。
如果您可以学习更多知识,请使用h2 + JPA(例如eclipselink),这-连同自动模式生成-将使部署更加容易(您无需编写/维护/运行DDL)。
答案 1 :(得分:1)
JDBC是一个简单的接口,允许您连接到嵌入式Java数据库。使用HSQLDB,您可以选择将CSV文件及其SQL格式脚本文件或二进制数据文件用于数据存储。
HSQLDB可以在混合嵌入式/服务器模式下工作,以允许您使用外部工具访问数据库。