我在名为database.sqlite的 project / src / main / resources / database 文件夹中有一个SQLite数据库。
如何在不添加getResource()方法的完整路径的情况下正确添加连接(DriverManager.getConnection())?现在它看起来像:
public static Connection Connector() {
try {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:../project/src/main/resources/database/database.sqlite");
return conn;
}
catch (ClassNotFoundException | SQLException e){
Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, e);
}
return null;
感谢您的回答。
答案 0 :(得分:1)
很抱歉这样说,但你的方法完全错了。
在类路径中放置一些资源文件,如图像,只读属性文件等,这是可以的。这些可以简单地由InputStream
获得getResourceAsStream()
读取,即使它们最终在JAR中持续。
但是SQLite数据库文件具有驱动程序需要随机访问的内部结构(如Java中的RandamAccessFile
)。此外,您可能也想写信给它。如果数据库文件包含在JAR中,则无法做到这一点。
因此,您应该将数据库文件直接放在文件系统中的某个位置。