2016-05-03 2 views
1

У меня очень интересная проблема, и мне не повезло найти источник проблемы.Ucanaccess Connection не создается

Моя компания недавно обновилась до более новой версии Java и старого метода подключения ODBC для подключения к базе данных MS Access больше не работает. Таким образом, я сейчас обновляюсь до нового метода.

Я нашел Ucanaccess, который кажется хорошей альтернативой, поскольку соединение доступно только для чтения.

Итак, после начала работы я обновил детали в коде для Ucanaccess.

Здесь я столкнулся с интересной проблемой.

Я добавил следующее к моему проекту

  • ucanaccess-3.0.4.jar
  • Обще-Ланг-2.6.jar
  • Обще-каротаж 1.1.1.jar
  • hsqldb.jar

jackcess-2.1.3.jar

и вверх дата код создания подключения к следующему

System.out.println("Establisting Connection....."); 
Connection con = DriverManager.getConnection("jdbc:ucanaccess://Z:\\Database\\test.accdb"); 
System.out.println("Connection Establisted....."); 

Первая база данных я был защищен паролем, так что я подумал, что может быть причиной проблемы, поэтому я перешел на новую базу данных. Вторая база данных была на общем диске, поэтому я сопоставил местоположение с указанным выше. Даже с этими двумя изменениями я все еще получаю ту же проблему.

Проблема в том, что каждый раз, когда я запускаю строку DriverManager.getConnection, код никогда не достигает System.out.println («Connection Establisted .....»); линия. Сообщения об ошибках отсутствуют, и программа все еще работает, поэтому нет сбоев. Странно то, что если я поставлю неверный путь, я доберусь до этой строки. Хотя я действительно получаю сообщение о том, что файл не существует.

Мне не повезло найти решение этой проблемы.

+0

Попробуйте запустить «console.bat» (находится в той же папке, что и «ucanaccess-3.0.4.jar») из командной строки Windows. Посмотрите, дает ли это вам какое-либо представление о том, что может произойти. –

+0

Батарея консоли, похоже, работает нормально, она загружает информацию из базы данных – theNewb

ответ

2

Я думаю, что могут возникнуть проблемы с подключением URL. Это работает для меня:

public class ConnectionUcanaccess { 

    static 
    { 
     try { 
      Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
      System.out.println("driver loaded"); 
     } catch (ClassNotFoundException e) { 
      System.out.println("the class driver can't be loaded"); 
     } 
    } 

    static Connection getConnection() throws SQLException { 
    return DriverManager.getConnection("jdbc:ucanaccess:///Users/shared/Desktop/database.accdb"); 
    } 

    public static void main(String[] args){ 

     try { 
      Connection con = ConnectionUcanaccess.getConnection(); 
      System.out.println("Connected: " + !con.isClosed()); 

     } catch (SQLException e) { 
      System.out.println("Error:" + e.getMessage()); 
     } 
    } 
} 
+0

Какая у вас ошибка? –

Смежные вопросы