Как подключить базу данных MS Access с помощью программы Java? - PullRequest
2 голосов
/ 30 июля 2011

Я хочу написать программу для извлечения данных из базы данных MS Access. Я написал программу, как показано ниже:

package db;

import java.sql.*;

public class MSaccess_archive {
    public static void main(String[] args) {

        try {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            String accessFileName = "E:/L4_project/sample/db/Database";

            String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFileName+".accdb;";

            Connection con = DriverManager.getConnection(connURL, "","");

            Statement stmt = con.createStatement();

            stmt.execute("select * from student"); // execute query in table student

            ResultSet rs = stmt.getResultSet(); // get any Result that came from our query

            if (rs != null)
             while ( rs.next() ){

                System.out.println("Name: " + rs.getString("Name") + " ID: "+rs.getString("ID"));
                }

                stmt.close();
                con.close();
            }
            catch (Exception err) {
                System.out.println("ERROR: " + err);
            }
    }

}

Но я получил исключение, как показано ниже:

ОШИБКА: java.sql.SQLException: [Microsoft] [ODBC Microsoft Access Драйвер] Не удалось найти файл '(неизвестно)'.

Когда я использовал файл .mdb, вышеприведенная программа работает правильно, но если я использую файл .accdb, он выдает указанное выше исключение.

Есть идеи, почему?

Ответы [ 5 ]

3 голосов
/ 20 марта 2015

Мост JDBC-ODBC был удален из Java 8 и не поддерживается (ref: здесь и здесь ). UCanAccess является популярной альтернативой. Подробнее см.

Управление базой данных Access из Java без ODBC

3 голосов
/ 07 ноября 2012

Вы можете вернуться к шагам, Панель управления> Администрирование> Источники данных> Добавить> Драйверы Microsoft Access (* mdb, * accdb)> ok> ok> ok. Это может работать. Для подключения ODBC.

1 голос
/ 21 октября 2013

Я думаю, вам нужно указать jdbc:odbc:my_access_odbc_dsn в качестве URL, где my_access_odbc_dsn - это имя вашего DSN, настроенное в ODBC.В моем случае я обращался к базе данных MS Access 2013 под названием «PavoDB», поэтому мой URL был:

private static final String url="jdbc:odbc:PavoDB";
1 голос
/ 10 августа 2011

, если вам не требуется запускать произвольные SQL-запросы, вы всегда можете попробовать jackcess .

0 голосов
/ 30 июля 2011

Возможно, драйвер не обновлен для чтения этого формата..mdb - оригинальный для Access;.accdb должен быть исправлен, а драйвер ODBC не сохранился.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...