Согласно этому руководству , вызов Class.forName
больше не требуется с драйверами JDBC 4.0+.Я успешно следовал методу в примере (просто вызывая DriverManager.getConnection
) для автономной программы, использующей MySQL, но когда я попытался подключиться к той же самой базе данных из класса, который был частью веб-приложения, работающего на Tomcat 7,это не сработает;вместо этого я получил исключение No suitable driver found
.
Файл mysql-connector-java-5.1.18-bin.jar
был в tomcat\webapps\DatabaseProject\WEB-INF\lib
, я трижды проверил, но он не работал, поэтому я начал что-то пробовать.Я добавил вызов на Class.forName
, и это сработало.Это было единственное, что изменилось.
В любом случае, мой вопрос: кто-нибудь знает, почему это сработало или что здесь происходит?Моя единственная теория заключается в том, что у меня также есть hsqldb.jar
в tomcat\lib
для другого проекта и, возможно, драйверы запутались?Но у меня сложилось впечатление, что DriverManager должен автоматически определять, какой драйвер использовать, так что это не должно быть проблемой ... В любом случае, если кто-то сможет объяснить мне, что здесь происходит, я был бы очень признателенэто.