2016-04-03 1 views
2

Я пытаюсь подключиться к базе данных Microsoft Access в Eclipse (Mars 4.5.0; Java 1.8) на Mac (el capitaine). Я получаю ошибку: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.4 given file does not exist: Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdbПроблема «данный файл не существует» с соединением UCanAccess

Это мой код:

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); 
     } 

    } 
} 

Я уверен, что его что-то делать с именем пути косыми чертами, но я попробовал все перестановки и все еще получаю ту же ошибку.

+0

I» m не знакомы с файловыми системами Mac, но вы пробовали «jdbc: ucanaccess: /// ...»? <- Включить дополнительную косую черту перед пользователями. А как насчет удаления ";" в "... accdb?"? – RubioRic

+0

Ага. Это была дополнительная косая черта. Благодарю. Добавить как ответ, чтобы я мог принять? –

+0

Рад помочь. Конечно.:-) – RubioRic

ответ

4

Я не знаком с файловыми системами Mac, но вы пробовали «jdbc: ucanaccess: /// ...» (включая дополнительную косую черту)?

Объяснение:

Путь к файлу базы данных сразу же следует jdbc:ucanaccess:// префикс соединения URL, поэтому для

jdbc:ucanaccess://Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb; 

путь к файлу базы данных является

Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb 

, который интерпретируется как относительный путь по отношению к текущему каталогу уровня ОС, действующему при запуске приложения Java.

Для того, чтобы путь к быть истолкован как абсолютного путь она должна начинаться с косыми чертами, т.е.

/Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb 

поэтому URL-соединения должен быть

jdbc:ucanaccess:///Users/sebastianzeki/Documents/BEST2RFA_DBv1.accdb