当我注释掉第一行时,我得到找不到合适的jdbc:microsoft:sqlserver 异常驱动程序。
我正在使用jdbc 4.1,而https://stackoverflow.com/a/8053125/1379734解释sess_config.gpu_options.allow_growth = True
方法不是必需的。我的代码出了什么问题?
Class.forName()
答案 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
(请注意jdbc
和sqlserver
切换位置),并且URL前缀更改为jdbc:sqlserver:
(另见this blogpost)。我相信在SQL Server 2008 JDBC驱动程序中添加了JDBC 4自动加载。有关详细信息,请参阅Microsoft JDBC Driver for SQL Server。
如果您想利用驱动程序自动加载,则需要将驱动程序升级到更新版本(最新版本)并更改配置。
请参阅:https://github.com/Microsoft/mssql-jdbc和Microsoft Download Center