我知道这个问题之前已被多次询问过。但是我似乎无法做对。
我尝试使用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)
我做错了什么?
答案 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";