Автоматическая регистрация драйвера JDBC зависит от реализации Driver
, обеспечивающей статический блок инициализатора, который вызывает DriverManager.registerDriver(...)
; блок вызывается только при загрузке класса Driver
. Скорее всего, реализация драйвера не имеет такого статического инициализатора или сервер приложений не загружает класс (маловероятно).
Если драйвер заявляет, что он является драйвером, совместимым с JDBC 4.0, рассмотрите возможность сообщения об ошибке, если отсутствует статический блок инициализатора, как конкретно указано в разделе 9.2 спецификации JDBC 4.0 (выделено мое):
Драйверы JDBC должны реализовать интерфейс драйвера и
реализация должна содержать статический инициализатор, который будет
вызывается, когда драйвер загружен. Этот инициализатор регистрирует новый
экземпляр самого себя с DriverManager, как показано в ПРИМ. КОДА
9-1.
public class AcmeJdbcDriver implements java.sql.Driver {
static {
java.sql.DriverManager.registerDriver(new AcmeJdbcDriver());
}
...
}
ПРИМЕР КОДА 9-1 Пример статического инициализатора для драйвера, реализующего
java.sql.Driver