设置 jdbc SQLite 数据库的路径,它将位于其中

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

我正在使用以下脚本连接到 Java 中的本地 SQLite 数据库:

public static Connection createOrOpenDatabase(String database) {

        String url = "jdbc:sqlite:" + database;

        try {
            Connection conn = DriverManager.getConnection(url);
            return conn;
        } catch (SQLException e) {
            System.out.println(e.getMessage());
            return null;
        }
    }

所以这效果非常好,并将其保存在同一目录中,

jar
也位于该目录中。现在是我的问题,如何设置数据库所在的绝对路径。

例如

db
文件的当前位置是:

C:\MyProjects\JavaFXProject\app\dist\main.db

现在我想将此文件保存到 user.home 目录中:

C:\Users\Julian\MyProjects\JavaFXProject\main.db

我怎样才能实现这个目标?

java sqlite jdbc
3个回答
1
投票

如何设置[n]个绝对路径

您可以将其作为连接 URL 的一部分,例如

jdbc:sqlite:C:/Users/Julian/MyProjects/JavaFXProject/main.db

0
投票

首先,在项目的 src 中创建子文件夹,并确保在文本编辑器中创建它 - 例如 eclipse 或 netbeans

这是为了在项目中创建子文件夹

然后你可以添加你的路径

Class.forName("org.sqlite.JDBC");
                con = DriverManager.getConnection("jdbc:sqlite:src/database/school.db");

这是用于连接代码是您的自定义路径


0
投票

OP 要求

user.home
的绝对路径,这是相对路径。 因此,我添加了独立于操作系统的答案来访问
user.home
路径,因为其他答案仅涵盖硬编码路径或 jar 的子目录。

...如何设置数据库所在的绝对路径。

现在我想将此文件保存到 user.home 目录中:

C:\Users\Julian\MyProjects\JavaFXProject\main.db

我怎样才能实现这个目标?

要获取当前活动用户主目录的相对路径,我们需要询问 Java 两个信息,然后将它们组合成正确的路径:

  1. 用户.home 位置。
 String userHome = System.getProperty("user.home");
  1. 当前操作系统路径分隔符。
char separator = File.separatorChar;
  1. 我们只是将它们组合成
    String url;
String url = "jdbc:sqlite:" + userHome + separator + "MyProjects" +separator + "JavaFXProject" + separator + "main.db"

现在 url 指向 user.home 内给定的子目录(无论 Windows / Linux)。

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