gpt4 book ai didi

java - 如何获取数据库的相对路径?

转载 作者:行者123 更新时间:2023-12-01 23:40:50 25 4
gpt4 key购买 nike

我正在开发一个 jframe,通过使用文本字段等在数据库中存储一些数据。我有以下数据库连接代码。我正在使用 sqlite 数据库。

**Connectdatabase.java**

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package shreesai;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
*
* @author DeepRocks
*/
public class Connectdatabase {

Connection con = null;

public static Connection ConnecrDb(){

try{
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:G:\\Development\\Project\\database\\shreesai.sqlite");
return con;
}
catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Problem with connection of database");
return null;
}
}
}****

/* 一切正常,但我希望如果我将此项目导出到 JAR,然后我的客户端将从不同的路径运行 JAR???*/

我尝试过使用此代码

public class Connectdatabase {

Connection con = null;

public static Connection ConnecrDb(){

try{
String dir = System.getProperty("user.dir");
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:"+dir+"shreesai.sqlite");
return con;
}
catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Problem with connection of database");
return null;
}
}

}

即使我尝试过这个:

public class Connectdatabase {

Connection con = null;

public static Connection ConnecrDb(){

try{
String dir = System.getProperty("user.dir");
String maindir = dir + File.separator + File.separator ;
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:"+maindir+"shreesai.sqlite");
return con;
}
catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Problem with connection of database");
return null;
}
}

}

但是没有我认为双反斜杠一定有问题导致目录返回:G:\Development\Project\database。我们想要 G:\\Development\\Project\\database\\

有什么帮助吗?

最佳答案

你尝试的方法并没有错,但只在你的电脑上是正确的,所以解决办法很简单,将.sqlite文件带入src ,也许您想创建一个名为 Database 的包,这不是必需的,但更好。

如果 .sqlite 文件位于源代码中,则如下所示:

src/shreesai.sqlite

....=DriverManager.getConnection("jdbc:sqlite:src/shreesai.sqlite");

不要使用绝对路径,并且由于窗口平台不同,请避免在目录中使用反斜杠( \\ ),请使用斜杠(/) 代替。

关于java - 如何获取数据库的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com