Подключение Java к базе данных MS Access

Вопрос: Просто интересно, может ли кто-нибудь помочь мне, я пытаюсь подключиться к базе данных 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

Вопрос:

Просто интересно, может ли кто-нибудь помочь мне, я пытаюсь подключиться к базе данных 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 и сохраните настройки.

См. Здесь.

Содержание

  1. Код:
  2. Вывод:
  3. РЕДАКТИРОВАТЬ:
  4. Код:

Код:

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. Вам понадобятся следующие банки в пути создания проекта.

  1. Обще-Ланг-2.6.jar
  2. Обще-каротаж 1.1.1.jar
  3. hsqldb.jar
  4. jackcess-2.1.0.jar
  5. 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);

Оцените статью
Добавить комментарий