2017-02-10 3 views
0

Я получаю Не найдено подходящего драйвера для jdbc: microsoft: sqlserver Исключение, если я прокомментирую первую строку.Не найдено подходящего драйвера для jdbc: microsoft: исключение sqlserver без Class.forname()

Я использую jdbc 4.1 и как https://stackoverflow.com/a/8053125/1379734 объяснил Class.forName() способ не нужен. Что не так с моим кодом?

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
con = java.sql.DriverManager.getConnection(getConnectionUrl(), userName, password); 
+3

Тогда вы не используете совместимый драйвер JDBC4 (или, по крайней мере, не придерживаясь того, что он должен делать). Тот факт, что у вас есть JDK, который поставляется с JDBC 4.x, не означает, что ваш драйвер автоматически является подходящим драйвером JDBC 4.x. Вам также придется использовать правильный драйвер. –

+0

Похоже, что вы используете неверный URL-адрес или очень старый драйвер, правильный URL-адрес JDBC для SQL Server начинается с 'jdbc: sqlserver:', а не 'jdbc: microsoft: sqlserver'. См. Также https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url –

+0

какую версию SQL-драйвера вы используете? совместимая версия должна содержать файл META-INF \ services \ java.sql.Driver. –

ответ

0

Тот факт, это работает, когда вы используете 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

Смежные вопросы