java. sql .SQLException: не найден подходящий драйвер для jdb c: mysql: // localhost: 3306 / database - PullRequest
0 голосов
/ 06 февраля 2020

Я пытался настроить свой собственный API для отдыха для школьного проекта. Я решил использовать MySQL в качестве базы данных и хочу подключить ее к своему веб-сервису, но, по-видимому, я всегда получаю следующее сообщение об ошибке: java. sql .SQLException: не найден подходящий драйвер для jdb c: mysql: // localhost: 3306 / userdatenbank

Когда я смотрю на сообщение об ошибке, он также говорит мне, что этот код не может быть выполнен:

public UserService() {
    try {
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdatenbank", "root", "adminadmin123"); 
    } catch (SQLException e) {
        e.printStackTrace();
    }  
} 

Я не знать, почему это происходит ... JAR-файл MySQL Java Connector находится в "Ссылочных библиотеках". Кстати, я использую Tomcat 9, MySQL 8, JDK 13 и Maven (сервлет Джерси).

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Перед установкой соединения вы должны загрузить свой драйвер с:

Class.forName("com.mysql.jdbc.Driver");

И соответствующий JAR-файл должен быть в вашем classpath (в lib вашего сервера или упакован в ваш WAR-файл).

В любом случае, я предлагаю вам использовать пул соединений вместо DriverManager

Основные преимущества пула соединений:

  1. Сокращено время создания соединения.

Хотя обычно это не проблема с быстрой установкой соединения, которую MySQL предлагает по сравнению с другими базами данных, создание новых соединений JDB C по-прежнему связано с сетью, а JDB C накладные расходы на драйверы, которых можно избежать при повторном использовании соединений.

Упрощенная модель программирования.

При использовании пула соединений каждый отдельный поток может действовать так, как если бы он создал свое собственное соединение JDB C, что позволяет вам использовать простые методы программирования JDB C .

Контролируемое использование ресурсов.

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

0 голосов
/ 06 февраля 2020

Поскольку вы используете maven, просто добавьте зависимость в ваш файл pom. xml.

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>

Просто go в репозиторий Maven и найдите версию, которая работает для вас. или Если вы скачали JAR-файл, добавьте его в classpath вашего проекта.

edit -> Class.forName() is not needed since JDBC 4.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...