2017-08-31 62 views
1

我试图用JDBC连接到SQL Server 2012数据库。我的连接代码是:使用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(我真的试图半打不同的版本sqljdbc#.jar文件)。

还有什么可能导致此问题?

+0

* [用于关系访问的驱动程序](https://docs.microsoft.com/en-us/sql/connect/sql-connection-libraries#anchor-20-drivers-relational-access)*您确定您得到最新的6.2? – lad2025

+0

是的,我试过6.0和6.2。 – Paul

+0

我可以使用JTDS驱动程序进行连接。 – Paul

回答

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"),那么你可能没有真正被加载不同版本的驱动程序。