Я продолжаю получать это исключение при попытке запустить мою программу:

Die Datenbank 'C:\TEMP\derbyDB01' konnte nicht mit dem Klassenladeprogramm sun.misc.Launcher$AppClassLoader@253498 gestartet werden. Details können Sie der nächsten Ausnahme entnehmen.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
    at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
    at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
    at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:243)
    at Importer.getCon(Importer.java:88)

это часть кода, вызывающая исключение:

private static final String jdbc_driver = "org.apache.derby.jdbc.EmbeddedDriver";
private static Connection conn = null;

public void importToDB(String DB_URL, String[] header, List<Data> dataList, File csv ) throws SQLException, ClassNotFoundException {
    stmt = null;
    ResultSet rs = null;
    String sql = null;
    String tablename = spl.getTableName(csv);

        Class.forName(jdbc_driver);

        if (conn == null) {

            conn = getCon(DB_URL);
        }

...

public static Connection getCon(String DB_URL) throws SQLException {

        System.out.println("Connecting to a selected database...");

        conn = DriverManager.getConnection(DB_URL);

        System.out.println("Connected successfully...");
        return conn;

    }

String DB_URL передается методу, взяв его из JTextfield. URL-адрес, который я использую, правильный, потому что программа работала с ним до добавления графического интерфейса. это: "jdbc:derby:C:\TEMP\derbyDB01"

Так что же вызывает здесь столько проблем?


person PooBucket    schedule 18.03.2014    source источник
comment
кстати, я могу подключиться и получить доступ к базе данных в квантовой перспективе моего затмения. Вот откуда я получил URL-адрес базы данных и драйверы.   -  person PooBucket    schedule 21.03.2014


Ответы (2)


Согласно руководству разработчика Derby, вам нужно поменять местами косые черты в URL-адрес

jdbc:derby:c:/TEMP/derbyDB01
person anttix    schedule 18.03.2014
comment
Извините, но это ничего не изменило :/ - person PooBucket; 21.03.2014

Извините, что так долго обновлял это.

Чуть не забыл, что я выложил это здесь. Проблема заключалась в том, что я открыл соединение с базой данных через плагин eclipse db. При закрытии этого плагина он не закрывает соединение должным образом, что затем приводит к этому исключению, когда программа снова пытается получить доступ.

person PooBucket    schedule 14.05.2015