Подключение Java к mySQL

привет, у меня на 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

Что я делаю неправильно?

У вас нет драйвера mysql connector / j (jdbc) в пути к классам среды выполнения. Кроме того, это localhost (а не local).

Elliott Frisch 31.05.2018 01:00

Я изменил локальный на localhost, однако я подумал, что вам не нужно добавлять драйвер в "/Users/Username/mysql-connector-java-8.0.11 2 / mysql-connector-java-8.0.11.jar" java Разъем 8.0 (импортировал)

Olivier Maxwell 31.05.2018 01:06

Добавьте также этот Class.forName("com.mysql.jdbc.Driver");

Sajith Herath 31.05.2018 01:16

Я продолжаю видеть это в Интернете, я думал, что это были старые версии разъема.

Olivier Maxwell 31.05.2018 01:20

однако, когда я добавляю его, я получаю Exception в потоке «main» java.lang.RuntimeException: Некомпилируемый исходный код - исключение, о котором не сообщается java.lang.ClassNotFoundException; должен быть пойман или объявлен как брошенный на testforairbus.TestFortest.main (TestForTest.java:22) Результат Java: 1

Olivier Maxwell 31.05.2018 01:21

какой иде вы используете?

Sajith Herath 31.05.2018 01:23

Я использую Netbeans

Olivier Maxwell 31.05.2018 01:27

Так что исправьте эту ошибку.

user207421 31.05.2018 03:58
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
8
6 851
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

После наличия драйвера в вашем пути к классам вам необходимо добавить следующую строку перед подключением и изменить 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) .........

Olivier Maxwell 31.05.2018 01:39

Какая у вас версия Java?

Bhumika Mishra 31.05.2018 01:42

Я использую jdk 8, netbeans 8.0.2 и соединитель mysql 8.0.11

Olivier Maxwell 31.05.2018 01:46

Просто дважды проверьте, что ваши JDK и JRE имеют одну и ту же версию, а затем попробуйте запустить код с соединителем MySQL серии 5.

Bhumika Mishra 31.05.2018 01:58

он работает со старой версией, я до сих пор не понимаю почему, но большое вам спасибо

Olivier Maxwell 31.05.2018 02:08
Ответ принят как подходящий

Прежде всего, вам нужно добавить драйвер 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, я всегда получаю сообщение об ошибке

Olivier Maxwell 31.05.2018 01:36

java.lang.RuntimeException: некомпилируемый исходный код - незарегистрированное исключение java.lang.ClassNotFoundException; должен быть пойман или объявлен брошенным на testforairbus.TestFortest.main (TestForTest.java:22), если быть точным

Olivier Maxwell 31.05.2018 01:36

Я думаю, вы добавили не ту библиотеку. Вы ссылались на ссылку, которую я дал в ответе на файл jar соединителя mysql. последняя версия оригинального коннектора mysql - 5.1.46

Sajith Herath 31.05.2018 01:49

Как это работает с вашей версией, это проблема? ПРЕДУПРЕЖДЕНИЕ: не рекомендуется устанавливать SSL-соединение без подтверждения личности сервера. Согласно требованиям MySQL 5.5.45+, 5.6.26+ и 5.7.6+ SSL-соединение должно быть установлено по умолчанию, если явный параметр не установлен. Для соответствия существующим приложениям, не использующим SSL, для свойства verifyServerCertificate установлено значение false.

Olivier Maxwell 31.05.2018 02:05

он работает со старой версией, большое спасибо за ваше время

Olivier Maxwell 31.05.2018 02:08

@OlivierMaxwell на самом деле это не более старая версия. Это последняя. Вы использовали соединитель mysql для .net, который полностью отличается от java. Вам нужен соединитель java mysql для проектов Java

Sajith Herath 31.05.2018 05:01

Другие вопросы по теме