Я получаю эту ошибку в Netbeans:SQLException: Нет подходящий драйвер найден для JDBC: дерби: // локальный: 1527
java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/
Как это вызвало и как я могу решить эту проблему?
Я получаю эту ошибку в Netbeans:SQLException: Нет подходящий драйвер найден для JDBC: дерби: // локальный: 1527
java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/
Как это вызвало и как я могу решить эту проблему?
JDBC DriverManager
не удалось найти подходящего Driver
для данного URL-соединения. Перед подключением БД драйвер JDBC вообще не загружается, или URL-адрес подключения неверен. Поскольку URL-адрес подключения выглядит нормально, я уверен, что драйвер вообще не загружен. Перед подключением БД вам необходимо загрузить драйвер во время запуска приложения. Для Apache Derby имя класса драйвера: org.apache.derby.jdbc.ClientDriver
. Итак:
Class.forName("org.apache.derby.jdbc.ClientDriver");
На самом деле я думаю, что они используют ClientDriver, а не EmbeddedDriver, на основе URL-адреса соединения. Так что это должен быть org.apache.derby.jdbc.ClientDriver. –
Исправлено, спасибо :) – BalusC
Переключение на derbyclient.jar вместо derby.jar для моего сетевого экземпляра дерби было моей проблемой. – Blaskovicz
java.sql.SQLException: Нет подходящий драйвер найден для JDBC: дерби: // локальный: 1527/
Это исключение имеет две причины:
В вашем случае, я бы ожидать, чтобы увидеть название базы данных в конце строки подключения. Например (используйте create=true
, если вы хотите, чтобы база данных будет создана, если она не существует):
jdbc:derby://localhost:1527/dbname;create=true
Базы данных по умолчанию создаются в каталоге, где Network Server был запущен. Но вы также можете указать абсолютный путь к папке базы данных:
jdbc:derby://localhost:1527//home/pascal/derbyDBs/dbname;create=true
И только в случае, убедитесь, что derbyclient.jar находится на пути к классам и что вы загружаете соответствующий драйвер org.apache.derby.jdbc.ClientDriver
при работе в сервере Режим.
Также возможно, что в persistence.xml, EmbeddedDriver использовался, когда URL-адрес jdbc указывал на сервер Derby. В этом случае просто измените URL-адрес на указатель пути к базе данных.
Если вы используете встроенное Derby, вам нужно Derby.jar в вашем пути к классам.
Для меня
DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());
помог. Таким образом, DriveManager знает дерби EmbeddedDriver. Возможно, выделение нового EmbeddedDriver является тяжелым, но с другой стороны, Class.forName нуждается в try/catch/doSomethingIntelligentWithException, которое мне не очень нравится.
Он также работал для меня. – srk
Если база данных создана, и вы запустили соединение с ней, вам необходимо добавить флешку драйвера. из окна проекта щелкните правой кнопкой мыши папку библиотек, перейдите в: programfiles \ sun \ javadb \ lib \ derbyclient.jar. загрузите файл, и вы сможете его запустить.
все лучшее
У меня была такая же проблема, когда я пишу приложение Java на Netbeans.Вот решение:
Найдите свой проект на вкладке выбора проектов
Щелкните правой кнопкой мыши "Библиотеки"
Нажмите кнопку "Добавить архив/папку ..."
Выбрать "derbyclient.jar"
Нажмите «Открыть», после чего вы увидите «derbyclient.jar» под вашими «Библиотеками»
Убедитесь, что ваш URL, имя пользователя, передать слово правильно, и запустить свой код :)
Примечание: Вы можете загрузить его с here.
Если вы не можете найти его, то
Найдите свой проект на вкладке выбора проектов
правой кнопкой мыши "Libraries"
Нажмите «Добавить JAR/папку .. . "
Выберите" derbyclient.jar "
Нажмите кнопку «Открыть», то вы увидите «derbyclient.jar» под вашу «Библиотекой»
Убедитесь, что URL, имя пользователя, пароль правильное, и запустить свой код :)
На этот вопрос отвечает, но для иллюстрации показана командная строка. Это работало для меня, когда я пытался как можно более простой тест подключиться к сетевому дерби. .
Драйвер загружен в приложение с: Class.forName ("org.apache.derby.jdbc.ClientDriver") newInstance();
URL-соединение было: "JDBC: котелок: // локальный: 1527/MyDB, создать = истина"
Я побежал мое приложение с помощью: Java -classpath derbyclient.jar :. myAppClass
Я пробовал все, что упоминалось в этой теме, и только .registerDriver() работал для меня. Вот как выглядит моя часть кода:
DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection(url, user, pass);
Обратите внимание, что проблема не в встроенном Derby.
Я решил эту проблему путем добавления библиотеки к пульту библиотеки ниже моего проекта:
Мой проект работает!
Вы также можете получить ту же ошибку, если сервер Java DB не был запущен.
Я столкнулся с той же проблемой. Я не получал вызов 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);
Вы можете отсутствовать, чтобы запустить сервер Derby. После запуска сервера котелок, он начинает слушать по умолчанию порт 1527.
Начало сценария находится ниже:
Windows:
<DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer.bat
Linux:
<DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer
Эта ошибка возникает, когда синтаксис строки подключения недопустим.
Вы можете использовать строку соединения, как
'jdbc:derby:MyDbTest;create=true'
или
вы можете использовать следующую команду в командной строке, команда ниже создает новую базу данных под названием MyDbTest
успешно:
connect 'jdbc:derby:MyDbTest;create=true';
Я только что столкнулся с этой проблемой, попробовал все вышеперечисленные предложения, но все еще не смог. Без повторения того, что было предложено выше, вот то, что я (вас) может отсутствовать: В случае, если вы используете Maven, скорее всего, вы будете утверждать, что зависимости, то есть:
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.10.1.1</version>
Пожалуйста, будьте осторожны с версией , Он должен быть совместим с экземпляром сервера, который вы используете.
Я решил свой случай, отказавшись от каких-либо зависимостей maven и вручную добавив внешнюю банку из «% JAVA_HOME% \ db \ lib», того же источника моего работающего сервера. В этом случае я тестирую с помощью Local.
Итак, если вы тестируете экземпляр удаленного сервера, найдите derbyclient.jar, который поставляется с пакетом серверов.
Возможный дубликат [The infamous java.sql.SQLException: не найдено подходящего драйвера] (http: // stackoverflow.com/questions/1911253/the-infamous-java-sql-sqlexception-no-fit-driver-found) – BalusC