"given file does not exist" UCanAccess 连接问题
"given file does not exist" issue with UCanAccess connection
我正在尝试在 Mac (el capitaine) 上连接到 Eclipse(Mars 4.5.0;Java 1.8)中的 Microsoft Access 数据库。我不断收到错误:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.4 given file does not exist: 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:ucanaccess:///..."(包括一个额外的斜线)?
解释:
数据库文件的路径紧跟在连接 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 数据库
- 继续 FILE
- Select 打开数据库
- 右键单击您的数据库并select复制LINK
- 在jdbc:ucanaccess://
之后粘贴link
我正在尝试在 Mac (el capitaine) 上连接到 Eclipse(Mars 4.5.0;Java 1.8)中的 Microsoft Access 数据库。我不断收到错误:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.4 given file does not exist: 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:ucanaccess:///..."(包括一个额外的斜线)?
解释:
数据库文件的路径紧跟在连接 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 数据库
- 继续 FILE
- Select 打开数据库
- 右键单击您的数据库并select复制LINK
- 在jdbc:ucanaccess:// 之后粘贴link