我尝试使用JDBC连接到SQL Server 2012数据库。我的连接代码是:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://<server_name>:1433", "username", "password");
但getConnection()
引发了以下异常:
The server version is not supported. The target server must be SQL Server 2000 or later.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
我已经从微软下载了最新的JDBC jar(我实际上已经尝试了大约6个不同版本的sqljdbc#.jar文件)。
还有什么可能导致这个问题?
答案 0 :(得分:1)
在尝试驱动程序的多个不同版本时,例如,为了进行故障排除,请注意不要在构建路径(CLASSPATH)上为驱动程序的(不同版本)留下多个.jar文件,因为生成的行为可能会造成混淆。
此外,这样的代码可能会解决这个问题:
try {
java.sql.Driver d = (java.sql.Driver) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
System.out.printf("%d.%d", d.getMajorVersion(), d.getMinorVersion());
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
如果您看到相同的值(例如"6.1"
),那么您可能实际上并未加载不同版本的驱动程序。