2015-07-13 3 views
0

При попытке подключиться к базе данных MS Access с помощью ucanaccess Я продолжаю получать «Нет подходящий драйвер не найден» ошибка при использовании относительного пути к моей базе данных:Нет подходящего драйвера найден, если полный путь не используется

SEVERE: null 
java.sql.SQLException: No suitable driver found for jdbc:ucanaccess:PatientLog.accdb 
    at java.sql.DriverManager.getConnection(DriverManager.java:689) 
    at java.sql.DriverManager.getConnection(DriverManager.java:247) 
    at connectiontester.OpenDB.openConnection(OpenDB.java:33) 
    at connectiontester.ConnectionTester$1.handle(ConnectionTester.java:41) 
    at connectiontester.ConnectionTester$1.handle(ConnectionTester.java:37) 

Для убедитесь, что мой относительный путь верен, я использовал DirectoryStream, чтобы получить список каталогов, и моя база данных (PatientLog.accdb) делает в списке. Любопытно, что когда я использую полный путь, ошибка исчезает.

Кто-нибудь знает почему? У кого-нибудь есть решение, поэтому я могу использовать относительный путь?

Использование Java 1.8 обновление 45

Netbeans 8.0.2

для Windows 8

Ucanaccess 2.0.9.5 (и зависимости)

ответ

1

Сообщение об ошибке показывает, что вам не хватает двух косых черт непосредственно перед именем файла. При указании относительного пути подключение URL должен выглядеть следующим образом:

jdbc:ucanaccess://PatientLog.accdb 

При указании полного пути вы должны использовать что-то вроде этого:

jdbc:ucanaccess://C:/Users/Gord/Desktop/PatientLog.accdb 
+0

На самом деле я пытался в обоих направлениях и получить та же ошибка. – John

+0

Но исключение не является ambiguos, если ucanaccess не может найти файл UCanAccessException с завернутым FileNotFoundException (и файл, указанный в сообщении, не существует). Вы просто потеряли // после jdbc: ucanaccess: поэтому «Не найдено подходящего драйвера» выбрано DriverManager (это означает, что ucanaccess не принял URL-адрес jdbc). – jamadei