我知道这个问题之前已被问过很多次了 . 但是我似乎无法做对 .
我正在尝试使用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:与主机MPRSNT2765 / SQLEXPRESS,端口1433的TCP / IP连接失败 . 错误:“null . 验证连接属性 . 确保在主机上运行SQL Server实例并接受端口上的TCP / IP连接 . 确保防火墙不阻止与端口的TCP连接 . ” at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket (IOBuffer.java:2243)com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)位于com.microsoft的com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309) . 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)位于bcapi.App3.main的bcapi.SQL.Init(SQL.java:29)的java.sql.DriverManager.getConnection(未知源)的java.sql.DriverManager.getConnection(未知源)(App3.java: 33)
我究竟做错了什么?
2 回答
从网址中删除“microsoft”:
在java中访问SQL Server的普通URL是:
网址:
不要使用
MPRSNT2765/SQLEXPRESS
仅使用服务器名称MPRSNT2765
所以修改后的url和servername如下: