通过JDBC连接到MS SQL Server会引发SQLServerException

时间:2015-12-14 12:22:31

标签: java sql-server jdbc

我知道这个问题之前已被多次询问过。但是我似乎无法做对。

我尝试使用Java连接到本地MS SQL服务器实例(使用.NET连接到此服务器没有问题)。

我使用sqljdbc.jar库使用以下代码:

String url = "jdbc:microsoft:sqlserver://";
String serverName= "MPRSNT2765/SQLEXPRESS";
String portNumber = "1433";
String databaseName= "MogGPS";
String un = "admin";
String pw = "admin";        
String selectMethod = "cursor"; 

String connectionUrl = url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = java.sql.DriverManager.getConnection(connectionUrl,un,pw);

我得到以下stacktrace:

  

com.microsoft.sqlserver.jdbc.SQLServerException:TCP / IP连接   到主机MPRSNT2765 / SQLEXPRESS,端口1433失败。错误:   "空。验证连接属性。确保一个实例   SQL Server正在主机上运行并接受TCP / IP连接   港口。确保未阻止与端口的TCP连接   通过防火墙。"。在   com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)     在   com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)     在   com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)     在com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)     在   com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)     在java.sql.DriverManager.getConnection(未知来源)at   java.sql.DriverManager.getConnection(未知来源)at   在bcapi.App3.main(App3.java:33)的bcapi.SQL.Init(SQL.java:29)

我做错了什么?

2 个答案:

答案 0 :(得分:2)

删除"微软"来自网址:

String url = "jdbc:sqlserver://";

答案 1 :(得分:1)

在java中访问SQL Server的普通URL是:

jdbc:sqlserver://MPRSNT2765:1433;databaseName=MogGPS

URL:

jdbc:sqlserver://<server_name>:<server_port>;databaseName=<db_name>

请勿使用MPRSNT2765/SQLEXPRESS仅使用服务器名称MPRSNT2765

这样修改后的url和servername如下:

String url = "jdbc:sqlserver://";
String serverName = "MPRSNT2765";