我正在尝试为我的学校项目构建一个简单的Java应用程序,并且希望能够使用一个简单的数据库,以便在我的数据库中插入,更新,删除和询问查询。
我需要我的应用程序在安装时随处运行,因此我想使用与应用程序一起提供的本地数据库,并且可以从项目内部对其进行访问,而无需依赖于其他数据库
因此,我已经阅读了一点并找到了此SQLite教程-http://www.sqlitetutorial.net/sqlite-java/sqlite-jdbc-driver/
, 现在,我想为下载我的应用程序的用户设置相对路径,并在用户计算机上设置连接。我注意到它是写的:
connect to an in-memory database, you use the following connection string:
jdbc:sqLite::memory
这是我的代码:
public class Main {
public static void main(String[] args) {
try{
Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Desktop\\School Project\\Software-Engineering---Java-Project\\data.db");
Statement statement = conn.createStatement();
//CREATE TABLES
statement.execute("CREATE TABLE IF NOT EXISTS CUSTOMERS (name TEXT,phone INTEGER,email TEXT)");
//INSERT TO TABLES
statement.execute("INSERT INTO CUSTOMERS (name,phone,email)" +
"VALUES ('NETANEL', 05555555,'SADF@GMAIL')");
请注意,我的JDBC是到本地计算机的路径,如何更改它?
编辑:
我仅通过引用数据库名称即可设置路径:
final static String DB_URI = "jdbc:sqlite" + ":data.db";
public static void main(String[] args) {
try{
Connection conn = DriverManager.getConnection(DB_URI);
Statement statement = conn.createStatement();
问题是,如果我将使用此数据库部署应用程序,它将是跨平台的吗?
答案 0 :(得分:1)
您可以使用用户主目录。您可以确定总是在定义程序的平台上进行定义,并且程序将对其具有读/写访问权限。
类似这样的东西:
String dbUri = "jdbc:sqlite:" + System.getProperty("user.home") + "/data.db";
Connection conn = DriverManager.getConnection(dbUri);