привет, у меня на Mac работает mysql, и я пытаюсь написать java-скрипт для подключения к нему:
private static final String USERNAME = "root";
private static final String PASSWORD = "password";
private static final String CONN_STRING = "jdbc:mysql://local:3306/test";
public static void main(String[] args) {
Connection conn = null;
try {
conn = DriverManager.getConnection(CONN_STRING,USERNAME,PASSWORD);
System.out.println("Connected");
}catch (SQLException e){
System.err.println(e);
}
}
однако я продолжаю получать это сообщение об ошибке
java.sql.SQLException: не найдено подходящего драйвера для jdbc: mysql: // local: 3306 / test
Что я делаю неправильно?
Я изменил локальный на localhost, однако я подумал, что вам не нужно добавлять драйвер в "/Users/Username/mysql-connector-java-8.0.11 2 / mysql-connector-java-8.0.11.jar" java Разъем 8.0 (импортировал)
Добавьте также этот Class.forName("com.mysql.jdbc.Driver");
Я продолжаю видеть это в Интернете, я думал, что это были старые версии разъема.
однако, когда я добавляю его, я получаю Exception в потоке «main» java.lang.RuntimeException: Некомпилируемый исходный код - исключение, о котором не сообщается java.lang.ClassNotFoundException; должен быть пойман или объявлен как брошенный на testforairbus.TestFortest.main (TestForTest.java:22) Результат Java: 1
какой иде вы используете?
Я использую Netbeans
Так что исправьте эту ошибку.




После наличия драйвера в вашем пути к классам вам необходимо добавить следующую строку перед подключением и изменить local на localhost в CONN_STRING:
DriverManager.registerDriver (новый com.mysql.jdbc.Driver ());
Что-то вроде этого:
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver ());
conn = DriverManager.getConnection(CONN_STRING,USERNAME,PASSWORD);
System.out.println("Connected");
}catch (SQLException e){
System.err.println(e);
}
попытка этого просто приводит к большему количеству ошибок. .defineClass (ClassLoader.java:800) в java.security.SecureClassLoader.defineClass (SecureClassLoade r.java:142) .........
Какая у вас версия Java?
Я использую jdk 8, netbeans 8.0.2 и соединитель mysql 8.0.11
Просто дважды проверьте, что ваши JDK и JRE имеют одну и ту же версию, а затем попробуйте запустить код с соединителем MySQL серии 5.
он работает со старой версией, я до сих пор не понимаю почему, но большое вам спасибо
Прежде всего, вам нужно добавить драйвер Mysql jdbc в качестве внешней библиотеки. Вы можете найти файл jar в здесь. Этот ссылка на сайт описывает, как добавить библиотеку в netbeans. Другое дело, что local должен быть localhost
private static final String USERNAME = "root";
private static final String PASSWORD = "password";
private static final String CONN_STRING = "jdbc:mysql://localhost:3306/test";
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(CONN_STRING,USERNAME,PASSWORD);
System.out.println("Connected");
}catch (SQLException e){
System.err.println(e);
}
}
Я сделал все, что mysql-connector-java-8.0.11 добавлен в качестве библиотеки, и я импортирую его в начале кода, однако, когда class.forName, я всегда получаю сообщение об ошибке
java.lang.RuntimeException: некомпилируемый исходный код - незарегистрированное исключение java.lang.ClassNotFoundException; должен быть пойман или объявлен брошенным на testforairbus.TestFortest.main (TestForTest.java:22), если быть точным
Я думаю, вы добавили не ту библиотеку. Вы ссылались на ссылку, которую я дал в ответе на файл jar соединителя mysql. последняя версия оригинального коннектора mysql - 5.1.46
Как это работает с вашей версией, это проблема? ПРЕДУПРЕЖДЕНИЕ: не рекомендуется устанавливать SSL-соединение без подтверждения личности сервера. Согласно требованиям MySQL 5.5.45+, 5.6.26+ и 5.7.6+ SSL-соединение должно быть установлено по умолчанию, если явный параметр не установлен. Для соответствия существующим приложениям, не использующим SSL, для свойства verifyServerCertificate установлено значение false.
он работает со старой версией, большое спасибо за ваше время
@OlivierMaxwell на самом деле это не более старая версия. Это последняя. Вы использовали соединитель mysql для .net, который полностью отличается от java. Вам нужен соединитель java mysql для проектов Java
У вас нет драйвера mysql connector / j (jdbc) в пути к классам среды выполнения. Кроме того, это
localhost(а неlocal).