2017-01-15 5 views
2

Я создаю веб-приложение, использующее сервлеты и Tomcat в IntelliJ. Я хочу подключить свое приложение к базе данных MySQL с помощью JDBC. Я загрузил MySQL Workbench, подключился к нему и создал базу данных.Конфигурация драйвера JDBC mysql в IntelliJ

Теперь в моем проекте IntelliJ я последовал this учебник, чтобы добавить подключение к базе данных, и мои свойства выглядеть следующим образом: enter image description here

Мой MySQL версии драйвера 5.1.35, поэтому он должен быть совместим с JDBC 4.0. Как выяснилось (в основном here), чтобы соединиться с моей базе данных я должен использовать только:

Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); 

Однако, когда я пытаюсь соединить я получаю No suitable driver исключение. Даже когда я добавляю

Class.forName(DB_DRIVER).newInstance(); 

В итоге я получаю то же самое. Он работает только тогда, когда я добавить вручную баночку этого драйвера в моих библиотеках и артефакты: enter image description here enter image description here

Является ли это действительно единственный способ? Если IntelliJ загрузил банку автоматически, не следует ли загружать ее автоматически при попытке подключения? В документации DriverManager есть что-то вроде этого: As part of its initialization, the DriverManager class will attempt to load the driver classes referenced in the "jdbc.drivers" system property. Должен ли я каким-то образом настроить это свойство?

+0

Возможный дубликат [Как не исправить: "Нет подходящего драйвера найти для JDBC: MySQL: // локальный/имя_бд"? Ошибка при использовании пулов] (http://stackoverflow.com/questions/5556664/how-to-fix-no-fit-driver-found-for-jdbcmysql-localhost-dbname-error-w) –

+0

Я не думаю, что это дубликат. Во-первых, я использую другую среду, где конфигурация немного отличается. Во-вторых, я знал решение, предложенное в этом вопросе, и спросил, есть ли другой способ этого. – Mohru

+0

Существует разница между настройкой IntelliJ на возможность подключения к MySQL и использованием драйвера базы данных в вашем проекте. –

ответ

2

Короткий ответ - Да, в качестве примера должны быть указаны кувшины проекта.

Когда вы настраиваете DB для Intellij (используя панель его базы данных), Intellij может скачать соответствующий драйвер на основе типа базы данных. Это похоже на настройку MySQL Workbench. Его для целей развития.

Когда вы используете соединение JDBC в рамках проекта , вам нужно как-то сказать Intellij, что вам нужен соответствующий драйвер. Вы можете сделать это одним из следующих способов:

  1. вручную добавить баночку драйвера в качестве библиотеки к проекту (как вы делали)
  2. В коде используется класс драйвера. Используйте Intellisense для импорта JAR (снимок экрана ниже). 'add to classpath'.
  3. То же, что и выше, но для проекта на основе maven (снимок экрана ниже). 'Добавить зависимость от maven'
  4. Используйте Spring-boot framework, пусть он автоматически определит драйвер для вас.

enter image description here enter image description here

+0

спасибо за ваш ответ.Использует ли какое-либо из ваших решений эти драйверы загрузки во время инициализации DriverManager, о которых я упомянул в своем вопросе? – Mohru

+0

Для инициализации инициализации DriverManager в коде требуется Class.forName ("class_name_string"). Intellij не будет загружать класс, потому что его строка. Таким образом, просто для импорта, напишите имя класса драйвера (с пакетом) в любом месте вашего кода, а затем используйте intellij предложения по импорту JAR. После импорта удалите этот код имени класса. – DeepakV

Смежные вопросы