Java DriverManager не загружает драйвер Mysql - PullRequest
0 голосов
/ 08 июня 2018

Java DriverManager не загружает драйвер Mysql

DriverManager
    static {
        loadInitialDrivers();
        println("JDBC DriverManager initialized");
    }

Драйвер Mysql jdbc находится в библиотеке Tomcat.

  tomcat/lib/mysql-jdbc.jar

Из отладчика, перед вызовом DriverManager.getDriver (URL), точки остановаустанавливается в методе loadInitialDrivers (), но выполнение там не останавливается.Это статический метод, когда класс загружается, и статический метод вызывается?

Список загруженных драйверов (registeredDrivers) пуст.

UPDATE

Добавьте ojdbc6.jar в tomcat / lib и перезапустите tomcat.DriverManager также не загружал драйвер.В чем может быть проблема?Кажется, что tomcat игнорирует все jar-файлы JDBC в каталоге tomcat / lib.

Также пробовал: скопировать драйверы jdbc в webapps / myapp / WEB-INF / lib, это не помогло.

1 Ответ

0 голосов
/ 08 июня 2018

Запуск SQL из простого Java-приложения сильно отличается от запуска SQL с JEE-сервера, такого как Tomcat (ну ... хотя бы половина JEE-сервера).

Не используйте static инициализаторы.Вместо этого JEE (Java Enterprise Edition) делает это по-разному по множеству очень веских причин:

  • В Tomcat вам не нужно «загружать» драйвер.Просто поместите его в TOMCAT_HOME/lib и перезапустите Tomcat.Вот и все.Драйвер уже загружен.Посмотрите журнал Tomcat, пока он запускается, и вы увидите его.Tomcat (как это делал бы любой сервер JEE) позаботится о его загрузке.

  • Затем вам нужно создать источник данных JDBC.Есть множество примеров того, как это сделать.Это можно сделать, изменив файл conf / server.xml и перезапустив Tomcat.Убедитесь, что вы даете источнику данных имя, которое вы помните;вы будете использовать его на следующем шаге.Снова посмотрите файл журнала Tomcat при запуске, и вы увидите, что новый источник данных регистрируется / создается.

  • Далее, в своем коде JEE вы извлекаете источник данных из каталога JNDI.используя имя, которое вы настроили на предыдущем шаге, и используйте его для создания Connection.Опять же, множество примеров того, как это сделать.

  • Наконец, с помощью Connection вы можете запускать все нужные вам операторы SQL.Это та часть, которую вы уже хорошо знаете.Делайте это так же, как обычно.

...