Какой правильный способ в Java для подключения к базе данных Microsoft Access 2007? - PullRequest
1 голос
/ 24 марта 2009

Я пытаюсь создать простое соединение, используя мост jdbc-odbc:

public static Connection  getConnection() {
    Connection con =null;
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" +
            "c:\\myfolder\\accesdbfile.accdb";
        con = DriverManager.getConnection(conStr);
    } catch(Exception e) {
        e.printStackTrace();}
    return con;
}

Но тогда я получаю это исключение:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0xa4 Thread 0xec0 DBC 0x2f8574c                                                              Jet'.

Есть идеи?

Обновление 24 марта 2009: теперь работает. Создан источник данных пользователя, и по какой-то причине исключение пропало.

Как общий вопрос: как лучше всего обрабатывать соединения с базами данных в Java?

Ответы [ 3 ]

6 голосов
/ 24 марта 2009

В общем, лучший способ работы с СУБД в Java - использование драйвера JDBC, который предназначен для непосредственного подключения к базе данных. Использование моста JDBC-ODBC замедляется.

Если вы пытаетесь выполнить базовые операции чтения / записи с базой данных Access, я бы также рекомендовал взглянуть на библиотеку Jackcess .

2 голосов
/ 24 марта 2009

Чтобы ответить на ваш общий вопрос, я бы сказал, что лучший способ обработки соединений с базой данных в Java - избегать моста JDBC-ODBC. Это нормально для тестирования или изучения JDBC, но не для реального производственного использования. Кроме того, если у вас есть источник данных, который не имеет своего собственного драйвера JDBC, но у него есть драйвер ODBC, у вас может не быть выбора.

Основная причина, по которой я предлагаю вам избегать этого, заключается в том, что это затрудняет развертывание вашего приложения. Вы должны настроить источник данных на компьютере, с которого вы запускаете приложение. Если у вас есть доступ к машине, нет проблем, но предположим, что вы отправляете приложение клиенту? Чистый драйвер Java JDBC лучше подходит для этого, поскольку он включен как часть вашего приложения, поэтому после установки приложения оно будет готово для подключения к источнику данных.

Конечно, в зависимости от ваших требований, есть два других типа драйверов, но это другое обсуждение.

0 голосов
/ 28 ноября 2013
  1. Перейти к панели управления -> Инструмент администрирования -> Администратор источника данных ODBC
  2. Добавить базу данных -> Выбрать «Драйвер Microsoft (*. Mdb, * .accdb)»
  3. Dobule нажмите на новую базу данных -> В разделе «База данных» нажмите «выбрать» -> выберите файл * .accdb, который вы создали в качестве базы данных MS Access.
  4. Скажите ОК и перейдите на ваш код Java
  5. Использование: Class.forName ( "sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection ("jdbc: odbc: filename");

Это, безусловно, решит все ваши проблемы.

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