Java DriverManager не загружает драйвер Mysql
DriverManager
static {
loadInitialDrivers();
println("JDBC DriverManager initialized");
}
Драйвер Mysql jdbc находится в библиотеке Tomcat.
tomcat/lib/mysql-jdbc.jar
Из отладчика, перед вызовом DriverManager.getDriver (URL), точка останова устанавливается в методе loadInitialDrivers (), но выполнение на этом не останавливается. Это статический метод, когда класс загружается, а статический метод вызывается?
Список загруженных драйверов (registeredDrivers) пуст.
Добавьте ojdbc6.jar в tomcat / lib, а затем перезапустите tomcat. DriverManager не сделал загрузить драйвер тоже. В чем может быть проблема? Кажется, что tomcat игнорирует все jar-файлы JDBC в каталоге tomcat / lib.
Также пробовал: скопировать драйверы jdbc в webapps / myapp / WEB-INF / lib, не помогло.
Это jar-соединитель mysql jdbc. Раньше это работало.
используя gradle для загрузки jdbc jar. mysql --- группа: 'mysql', имя: 'mysql-connector-java', версия: '6.0.6' oracle --- группа: 'com.oracle', имя: 'ojdbc6', версия: '11 .2. 0,3 '
Если я использую только java без tomcat, DriverManager сможет успешно загрузить драйверы. Я предполагаю, что это может быть путь к классам (проблема с загрузчиком классов).
Есть ли способ распечатать путь к классам для веб-приложения, чтобы узнать, находятся ли jdbc jar-файлы в пути к классам?






Запуск 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, какие захотите. Это то, что вы уже хорошо знаете. Делайте это так же, как обычно.
DriverManager нельзя использовать в среде Tomcat? Это стандартная java-библиотека. Как это отключено? Благодарю.
Да, это можно использовать. Это просто не имеет смысла для приложений корпоративного уровня. Это может потребоваться для чего-то действительно особенного, например, для динамической загрузки неизвестных драйверов во время выполнения. Но опять же, в корпоративных приложениях этого не делают.
Что такое
mysql-jdbc.jar? Имя текущего драйвера MySQL JDBC -mysql-connector-java-8.0.11.jar. Аojdbc6.jarдевять лет.