没有为jdbc找到合适的驱动程序:microsoft:没有Class.forname()的sqlserver异常

时间:2017-02-10 13:21:35

标签: java jdbc

当我注释掉第一行时,我得到找不到合适的jdbc:microsoft:sqlserver 异常驱动程序。

我正在使用jdbc 4.1,而https://stackoverflow.com/a/8053125/1379734解释sess_config.gpu_options.allow_growth = True方法不是必需的。我的代码出了什么问题?

Class.forName()

1 个答案:

答案 0 :(得分:0)

当您使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");和以jdbc:microsoft:sqlserver开头的JDBC URL时,它的工作原理表明您使用的是+/- 17岁的Microsoft SQL Server 2000 JDBC驱动程序。此驱动程序早于JDBC 4,因此它不支持通过/META-INF/services/java.sql.Driver自动加载驱动程序。

自SQL Server 2005 JDBC驱动程序以来,正确的类名是com.microsoft.jdbc.sqlserver.SQLServerDriver(请注意jdbcsqlserver切换位置),并且URL前缀更改为jdbc:sqlserver:(另见this blogpost)。我相信在SQL Server 2008 JDBC驱动程序中添加了JDBC 4自动加载。有关详细信息,请参阅Microsoft JDBC Driver for SQL Server

如果您想利用驱动程序自动加载,则需要将驱动程序升级到更新版本(最新版本)并更改配置。

请参阅:https://github.com/Microsoft/mssql-jdbcMicrosoft Download Center