Вопрос:
Просто интересно, может ли кто-нибудь помочь мне, я пытаюсь подключиться к базе данных MS Access. Я сделал это в других проектах и использовал точно такой же код. Может ли кто-нибудь увидеть, что я сделал что-то неправильно?
try { System.out.println(«Attempting Database Connection»); Class.forName(«sun.jdbc.odbc.JdbcOdbcDriver»); String sourceURL = «jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=MotivationDatabase.mdb;»; connection = DriverManager.getConnection(sourceURL, «», «»); stmt = connection.createStatement(); System.out.println(«Connection made»); } catch (Exception e) { System.out.println(«Database connection attempt failed»); System.out.println(e); }
Я продолжаю получать ошибку:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file ‘(unknown)’.
Но моя база данных находится в той же папке, что и мой проект, как я это делал раньше. Я не уверен, почему я получаю эту ошибку. Помогите?
Ответ №1
-
Control Panel → Administrative Tools → ODBC Data Sources → Add → Microsoft Access Driver(*mdb,*accdb)
-
Укажите правильный путь к MotivationDatabase.mdb соответствующий Data Source name и сохраните настройки.
См. Здесь.
Содержание
Код:
public class Main { @SuppressWarnings(«unused») public static void main(String[] args) { try { System.out.println(«Attempting Database Connection»); Class.forName(«sun.jdbc.odbc.JdbcOdbcDriver»); String sourceURL = «jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=» + «D:\MotivationDatabase.mdb»; Connection connection = DriverManager.getConnection(sourceURL); System.out.println(«Connection made»); } catch (Exception e) { e.printStackTrace(); } } }
Вывод:
PS: Пожалуйста, научитесь работать с JDBC, поскольку мост JDBC-ODBC будет удален в JDK8. Смотрите здесь.
РЕДАКТИРОВАТЬ:
Вы также можете использовать JDBC вместе с API UCanAccess для подключения к базе данных MSAccess. Вам понадобятся следующие банки в пути создания проекта.
- Обще-Ланг-2.6.jar
- Обще-каротаж 1.1.1.jar
- hsqldb.jar
- jackcess-2.1.0.jar
- ucanaccess-2.0.9.5.jar
Код:
connection = DriverManager .getConnection(«jdbc:ucanaccess:////REMOTE-IP-ADDRESS/shared-folder/TestDB.mdb»); System.out.println(«CONNECTION ESTABLISHED….»);
Прекрасно работает с JDK8. Вы можете загрузить весь исходный код здесь.
Ответ №2
Sun JDBC ODBC будет работать с доступом MS, когда java 8 будет выпущен: я предлагаю вам использовать проект apache poi. Это просто и отлично работает.
Да, правильно, правильный проект jakcess:
import com.healthmarketscience.jackcess.DatabaseBuilder; import com.healthmarketscience.jackcess.Row; import com.healthmarketscience.jackcess.Table; try{Table table = DatabaseBuilder.open(new File(«filename»)).getTable(«tablename»); righe.add(0); for(Row row : table) { String articolo=row.get(«ColName»).toString(); Ответ №3
Попробуйте использовать имя класса и URL-адрес подключения. Добавьте следующие файлы jar в свои проекты:
Обще-lang.jar, Обще-logging.jar, hsqldb.jar, jackcess.jar, ucanaccess.jar
Class.forName(«net.ucanaccess.jdbc.UcanaccessDriver»); //change the path with your own accdb file String URL = «jdbc:ucanaccess://D:\projects\test.accdb»; Connection con = DriverManager.getConnection(URL);