我在一个带有SQLite的Maven项目中使用IntelliJ在Mac上工作,我已经成功地用绝对路径建立了到数据库的连接:
import java.sql.*;
Connection connection = null;
String url = "jdbc:sqlite:/Users/user/any/dir/java_project/database/data.db";
connection DriverManager.getConnection(url);
字符串
这在我的PC上运行良好,但我希望数据库连接独立于任何IDE或上级文件夹结构,因为我在一个团队中工作,每个人都有不同的文件夹结构(当然),而不是使用相同的IDE。
intern文件夹结构如下所示:(由IntelliJ生成)
java_project
│
│
├───src
│ │
│ └───main
│ └───java
│ └─Main.java
│
│
└───database
└─data.db
型
我一直在尝试使用相对路径String连接Main中的SQLite文件,如下所示:
url = "jdbc:sqlite:../../../database/data.db"
型
但只有绝对路径才有效。我找到了这个线程:sqlite jdbc Eclipse database relative path
但是这个人搜索了一个Eclipse特定的解决方案。
String url="jdbc:sqlite:"+dbfile.getAbsolutePath()+"\\Demo.db";
型
看起来不错,但是我不知道,我如何导入data.db文件来用方法引用它。
我还发现:
connection = DriverManager.getConnection("jdbc:sqlite:"+$PROJECT_DIR$+"/database/data.db");
型
但是IntelliJ不能解析这个符号,我没有花太多的精力来做这个工作,因为我相信它是特定于IntelliJ的,我想要一些不依赖于IDE的东西。
代码将来应该在服务器上运行,所以如果我们有一个选项来建立与相对路径的连接,那么项目在哪个上级文件夹中并不重要,那就太好了。
1条答案
按热度按时间bkkx9g8r1#
感谢Mark Rotteveel的善意评论,我找到了一个解决方案,它可以按照我想要的那样工作:
字符串
该语句可以位于文件层次结构中的任何位置,如问题所示。