Подтвердить что ты не робот

SQLException: Не найдено подходящего драйвера для jdbc: derby://localhost: 1527

Я получаю эту ошибку в Netbeans:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/

Как это вызвано и как я могу его решить?

4b9b3361

Ответ 1

java.sql.SQLException: Не найдено подходящего драйвера для jdbc: derby://localhost: 1527/

Это исключение имеет две причины:

  • Драйвер не загружен.
  • URL-адрес JDBC неверен.

В вашем случае я ожидаю увидеть имя базы данных в конце строки подключения. Например (используйте create=true, если вы хотите создать базу данных, если она не существует):

jdbc:derby://localhost:1527/dbname;create=true

Базы данных создаются по умолчанию в каталоге, в котором запущен Сетевой сервер. Но вы также можете указать абсолютный путь к местоположению базы данных:

jdbc:derby://localhost:1527//home/pascal/derbyDBs/dbname;create=true

И на всякий случай, убедитесь, что derbyclient.jar находится в пути к классу и что вы загружаете соответствующий драйвер org.apache.derby.jdbc.ClientDriver при работе в режиме сервера.

Ответ 2

Примечание: вы можете загрузить его из здесь.

Если вы не можете найти его,

  • Найдите свой проект на вкладке выбора проектов

  • Щелкните правой кнопкой мыши "Библиотеки"

  • Нажмите "Добавить JAR/Папка..."

  • Выберите "derbyclient.jar"

  • Нажмите "Открыть", затем в "Библиотеках" вы увидите "derbyclient.jar"

Убедитесь, что ваш URL, имя пользователя, пароль верны и запустите свой код:)

Ответ 3

Для меня

DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());

помог. Таким образом, DriveManager знает дерби EmbeddedDriver. Возможно, выделение нового EmbeddedDriver является тяжелым, но с другой стороны, Class.forName нуждается в try/catch/doSomethingIntelligentWithException, которое мне не очень нравится.

Ответ 4

JDBC DriverManager не может найти подходящий Driver для данного URL-адреса подключения. Перед подключением БД драйвер JDBC вообще не загружается, или URL-адрес подключения неверен. Поскольку URL-адрес подключения выглядит нормально, я уверен, что драйвер вообще не загружен. Перед подключением базы данных необходимо загрузить драйвер во время запуска приложения. Для Apache Derby имя класса драйвера org.apache.derby.jdbc.ClientDriver. Итак:

Class.forName("org.apache.derby.jdbc.ClientDriver");

Ответ 5

У меня была та же проблема, когда я писал приложение Java на Netbeans. Вот решение:

  • Найдите свой проект на вкладке выбора проектов

  • Щелкните правой кнопкой мыши "Библиотеки"

  • Нажмите "Добавить JAR/Папка..."

  • Выберите "derbyclient.jar"

  • Нажмите "Открыть", затем в "Библиотеках" вы увидите "derbyclient.jar"

  • Убедитесь, что ваш URL, имя пользователя, слово передано правильно и запустите свой код:)

Ответ 6

Я решил это, добавив библиотеку в консоль библиотеки ниже моего проекта:

  • Щелкните правой кнопкой мыши, а затем добавьте библиотеку
  • добавить JAVA DB DRIVER.

Мой проект работает!

Ответ 7

Если вы используете встроенное Derby, вам нужно Derby.jar в вашем пути к классам.

Ответ 8

Ответ дан, но для иллюстрации показана командная строка. Это сработало для меня, когда я пытался как можно более простой тест подключиться к сетевому дерби.

  • Драйвер, загруженный в приложение: Class.forName( "org.apache.derby.jdbc.ClientDriver" ). newInstance();

  • URL-адрес соединения: "jdbc: derby://localhost: 1527/myDB; create = true"

  • Я запускал свое приложение, используя: java -classpath derbyclient.jar:. myAppClass

Ответ 9

Я столкнулся с той же проблемой. Мне не удалось вызвать службу DriverManager.registerDriver(), прежде чем получить соединение с использованием URL-адреса подключения и учетных данных пользователя.

Он был исправлен в Linux, как показано ниже:

DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection("jdbc:derby://localhost:1527//tmp/Test/DB_Name", user, pass);

Для Windows:

DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/Users/Test/DB_Name", user, pass);

Ответ 10

Также возможно, что в файле persistence.xml использовался EmbeddedDriver, в то время как URL-адрес jdbc указывал на сервер Derby. В этом случае просто измените url на указание пути к базе данных.

Ответ 11

Я попробовал все, что упоминалось в этой теме, и только .registerDriver() работал у меня. Вот как выглядит моя часть кода:

DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection(url, user, pass);

Обратите внимание, что проблема не во встроенном Derby.

Ответ 12

Вы также можете получить ту же ошибку, если сервер Java DB не был запущен.

Ответ 13

Возможно, вам не удастся запустить сервер Derby. Как только сервер дерби запускается, он начинает прослушивать порт по умолчанию 1527.

Запуск script расположен ниже:

Окна:

    <DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer.bat

Linux:

    <DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer

Ответ 14

Эта ошибка возникает, когда синтаксис строки подключения недействителен.

Вы можете использовать строку подключения как

'jdbc:derby:MyDbTest;create=true'

или

вы можете использовать следующую команду в командной строке, приведенная ниже команда создает новую базу данных с именем MyDbTest успешно:

connect 'jdbc:derby:MyDbTest;create=true';

Ответ 15

Я только что столкнулся с этой проблемой, попробовал все вышеперечисленные предложения, но все еще не смог. Без повторения того, что было предложено выше, вот что я (вы) может отсутствовать: Если вы используете maven, вероятно, вы укажете зависимости i.e:

<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.10.1.1</version>

Будьте осторожны с версией. Он должен быть совместим с экземпляром сервера, который вы используете.

Я решил свой случай, отказавшись от каких-либо зависимостей maven и вручную добавив внешнюю банку из "% JAVA_HOME%\db\lib", того же источника моего работающего сервера. В этом случае я тестирую, используя мой Local.

Итак, если вы тестируете экземпляр удаленного сервера, найдите файл derbyclient.jar, который поставляется с пакетом серверов.

Ответ 16

если база данных создана, и вы запустили соединение с ней, тогда вам нужно добавить банку драйвера. из окна проекта щелкните правой кнопкой мыши папку библиотек, перейдите в: programfiles\sun\javadb\lib\derbyclient.jar. загрузите файл, и вы сможете его запустить.

все лучшее