Тот факт, это работает, когда вы используете Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
и URL JDBC, который начинается с jdbc:microsoft:sqlserver
означает, что вы используете +/- 17 год старый драйвер Microsoft SQL Server 2000 JDBC. Этот драйвер предшествует JDBC 4, поэтому он не поддерживает автоматическую загрузку драйвера через /META-INF/services/java.sql.Driver
.
Поскольку драйвер JDBC SQL Server 2005, правильное название класса com.microsoft.jdbc.sqlserver.SQLServerDriver
(обратите внимание, что jdbc
и sqlserver
поменялись местами) и префикс URL изменен на jdbc:sqlserver:
(смотри также this blogpost). Я считаю, что автозагрузка JDBC 4 была добавлена в JDBC-драйвер SQL Server 2008. См. Microsoft JDBC Driver for SQL Server для получения дополнительной информации.
Если вы хотите воспользоваться автозагрузкой драйвера, вам необходимо обновить драйвер до более новой версии (наиболее предпочтительно) и изменить конфигурацию.
См: https://github.com/Microsoft/mssql-jdbc и Microsoft Download Center
Тогда вы не используете совместимый драйвер JDBC4 (или, по крайней мере, не придерживаясь того, что он должен делать). Тот факт, что у вас есть JDK, который поставляется с JDBC 4.x, не означает, что ваш драйвер автоматически является подходящим драйвером JDBC 4.x. Вам также придется использовать правильный драйвер. –
Похоже, что вы используете неверный URL-адрес или очень старый драйвер, правильный URL-адрес JDBC для SQL Server начинается с 'jdbc: sqlserver:', а не 'jdbc: microsoft: sqlserver'. См. Также https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url –
какую версию SQL-драйвера вы используете? совместимая версия должна содержать файл META-INF \ services \ java.sql.Driver. –