首页 文章

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

提问于
浏览
0

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

我正在尝试使用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 回答

  • 1

    从网址中删除“microsoft”:

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

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

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

    网址:

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

    不要使用 MPRSNT2765/SQLEXPRESS 仅使用服务器名称 MPRSNT2765

    所以修改后的url和servername如下:

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

相关问题