UCanAccess无法找到我的DB

时间:2015-08-31 15:45:25

标签: java ms-access-2007 ucanaccess

我尝试使用UCanAccess将我的Java代码连接到访问中的表 这是我的代码:

import java.sql.*;

public class HH {

    public static void main(String[] args) throws SQLException {
        // opens a connection to the database
        Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:/Users/user/Documents/Database5.accdb‬");
        Statement s = conn.createStatement();
    }
}

由于某种原因它抛出了这个:

Exception in thread "main" net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.0 given file does not exist: C:\Users\user\Documents\Database5.accdb‬
    at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:258)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at HH.main(HH.java:8)
Caused by: java.io.FileNotFoundException: given file does not exist: C:\Users\user\Documents\Database5.accdb‬
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:362)
    at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:248)
    at net.ucanaccess.jdbc.DefaultJackcessOpener.open(DefaultJackcessOpener.java:35)
    at net.ucanaccess.jdbc.DBReference.<init>(DBReference.java:160)
    at net.ucanaccess.jdbc.DBReferenceSingleton.loadReference(DBReferenceSingleton.java:51)
    at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:96)
    ... 3 more

路径没问题,如果我将其输入Windows资源管理器,则会打开我的数据库。

1 个答案:

答案 0 :(得分:1)

根据我对UCanAccess等的经验,我认为你的代码是"jdbc:ucanaccess://C:/Users/user/Documents/Database5.accdb‬"

应该是

"jdbc:ucanaccess://C:\\Users\\user\\Documents\\Database5.accdb‬"

原因:在文件系统中它使用反斜杠而不是转发斜杠,而在java字符串中使用&#39; \&#39; character是一个转义符,因此要输入该字符中的一个,您需要自行转义:\\\方法显示为getConnection

相关问题