Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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 &引用;给定的文件不存在";UCanAccess连接出现问题_Java_Jdbc_Ucanaccess - Fatal编程技术网

Java &引用;给定的文件不存在";UCanAccess连接出现问题

Java &引用;给定的文件不存在";UCanAccess连接出现问题,java,jdbc,ucanaccess,Java,Jdbc,Ucanaccess,我正试图连接到Mac(el capitaine)上Eclipse(Mars 4.5.0;Java 1.8)中的Microsoft Access数据库。我不断得到错误: net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::3.0.4给定文件不存在:Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb 这是我的代码: import java.sql.*; public class DbAccess {

我正试图连接到Mac(el capitaine)上Eclipse(Mars 4.5.0;Java 1.8)中的Microsoft Access数据库。我不断得到错误:
net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::3.0.4给定文件不存在:Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb

这是我的代码:

import java.sql.*;

public class DbAccess
{
    public static void main(String[] args) 
    {

        try
        {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            Connection conn=DriverManager.getConnection("jdbc:ucanaccess://Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb;");
            Statement stment = conn.createStatement();
            String qry = "SELECT * FROM Table1";

            ResultSet rs = stment.executeQuery(qry);
            while(rs.next())
            {
                String id    = rs.getString("ID") ;
                String fname = rs.getString("Nama");

                System.out.println(id + fname);
            }
        }
        catch(Exception err)
        {
            System.out.println(err);
        }

    }
}

我确信这与路径名斜杠有关,但我尝试了每一种排列,仍然得到相同的错误。

我不熟悉Mac文件系统,但您尝试过“jdbc:u”吗canaccess:///...“(包括额外的斜杠)

说明:

数据库文件的路径紧跟在连接URL的
jdbc:ucanaccess://
前缀之后,因此

jdbc:ucanaccess://Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb; 数据库文件的路径为

Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb
它被解释为相对路径,相对于Java应用程序启动时有效的OS级当前目录

为了将路径解释为绝对路径,它必须以正斜杠开始,即

/Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb
因此,连接URL需要

jdbc:ucanaccess:///Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb
  • 打开MS Access数据库
  • 存档
  • 选择“打开数据库”
  • 右键单击数据库并选择“复制链接”
  • 将链接粘贴到jdbc:ucanaccess://

  • 我不熟悉Mac文件系统,但你试过“jdbc:u”吗canaccess:///..."? 啊哈。这是额外的斜杠。谢谢添加作为答案,以便我可以接受?很高兴提供帮助。当然可以。:-)