当我注释掉第一行时,找不到jdbc:microsoft:sqlserver异常的合适驱动程序。
我正在使用JDBC4.1,正如https://stackoverflow.com/a/8053125/1379734解释的那样,没有必要使用Class.forName()方法。我的密码怎么了?
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = java.sql.DriverManager.getConnection(getConnectionUrl(), userName, password);发布于 2017-02-10 13:38:20
当您使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");时,它可以工作,以jdbc:microsoft:sqlserver开头的JDBC表明您使用的是使用+/- 17年的MicrosoftSQLServer2000JDBC驱动程序。该驱动程序早于JDBC 4,因此它不支持通过/META-INF/services/java.sql.Driver自动加载驱动程序。
由于SQLServer2005JDBC驱动程序,正确的类名是com.microsoft.jdbc.sqlserver.SQLServerDriver (注意,jdbc和sqlserver交换了位置)和URL前缀更改为jdbc:sqlserver: (也请参阅这个博客)。我相信JDBC 4自动加载是在SQLServer2008JDBC驱动程序中添加的。有关详细信息,请参阅用于Server的Microsoft驱动程序。
如果您想要利用驱动程序自动加载,您将需要升级您的驱动程序到一个较新的版本(最好是最新的),并更改您的配置。
https://stackoverflow.com/questions/42160432
复制相似问题