Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java如何在项目文件所在的同一文件夹中重新引用Sqlite数据库?_Java_Sqlite_Netbeans - Fatal编程技术网

Java如何在项目文件所在的同一文件夹中重新引用Sqlite数据库?

Java如何在项目文件所在的同一文件夹中重新引用Sqlite数据库?,java,sqlite,netbeans,Java,Sqlite,Netbeans,我在一个java管理系统上工作,我使用sqlite作为我的主数据库。我正在使用netbeans gui builder处理我的项目。我在谷歌上搜索了一下,发现如何在项目文件的同一目录中引用sqlite数据库,而不包括像c://filepath这样的完整路径,但还没有什么好消息。我不想包括我的数据库的完整路径,我想使用项目文件中的sqlite文件,这样即使在分发我的项目后,一切都会顺利进行 我的连接类当前看起来像这样 import java.sql.Connection; import java.

我在一个java管理系统上工作,我使用sqlite作为我的主数据库。我正在使用netbeans gui builder处理我的项目。我在谷歌上搜索了一下,发现如何在项目文件的同一目录中引用sqlite数据库,而不包括像
c://filepath
这样的完整路径,但还没有什么好消息。我不想包括我的数据库的完整路径,我想使用项目文件中的sqlite文件,这样即使在分发我的项目后,一切都会顺利进行

我的连接类当前看起来像这样

import java.sql.Connection;
import java.sql.DriverManager;

public class Connect {
    private static Connection con = null; 

    public static Connection connecting(){

        try{
            Class.forName("org.sqlite.JDBC"); 
            con = DriverManager.getConnection("jdbc:sqlite:programming.sqlite");
            JOptionPane.showMessageDialog(null, "Working", null, JOptionPane.INFORMATION_MESSAGE);

        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage(), null, JOptionPane.ERROR_MESSAGE); 
        }
        return con; 
    }

}
然而,这似乎不起作用。。请记住,连接类和数据库保存在同一目录中

请注意,我正在避免绝对路径,如
c://users/programming.sqlite


有什么需要帮助的吗?

我认为它必须如您所示工作,但是,您可以将
programming.sqlite
作为
java.io.File
加载,然后将绝对路径放入jdbc url连接中。我的意思是:

File temp = new File("programming.sqlite");
String connection = "jdbc:sqlite:" + temp.getAbsolutePath().replace("\\","\\\\");
con = DriverManager.getConnection(connection);
...

如果此代码不适用于您,那么您的问题一定是
编程.sqlite
位置,因为在这种情况下,它不在java程序的同一主目录上。

测试您的答案很好我创建了一个名为testing的表。。我所能得到的就是
java.sql.SQLException:[SQLITE\u ERROR]sql错误或缺少数据库(没有这样的表:测试)
当我包含绝对路径时,比如
C:\\file\u path
数据库运行良好,但我不想使用这种方法哦!对不起,当然你必须退出文件路径,这就是为什么我的第一个答案不适合你。我编辑了我的答案,添加了这个
temp.getAbsolutePath().replace(“\\\”,“\\\\”)
,它是这样工作的。还没有工作。。。请你试试看它是否能用。。。我不确定哪里出了问题…我无法检查它,我是GNU/Linux开发人员,无法在windows路径上测试。但可能您的问题与文件加载有关。您可以使用文件中的
exists
方法检查它。加载文件后,尝试通过以下方式检查文件是否存在
temp.exists()
。如果值为false,则表示无法访问该文件,因此这是需要解决的错误。