MS SQL与JAVA
我尝试将我的sql数据库连接到java。 问题是我的MsSQL没有显示在TCPviewer中。。im使用Express版本,并且在configuration Manager中启用了TCP IP。 也许有人能告诉我问题是什么以及如何解决。 Java向我提供了以下代码错误:MS SQL与JAVA,java,sql-server,eclipse,tcp,connect,Java,Sql Server,Eclipse,Tcp,Connect,我尝试将我的sql数据库连接到java。 问题是我的MsSQL没有显示在TCPviewer中。。im使用Express版本,并且在configuration Manager中启用了TCP IP。 也许有人能告诉我问题是什么以及如何解决。 Java向我提供了以下代码错误: import java.sql.*; public class Test { public static void main(String[] args){ Connection con = null;
import java.sql.*;
public class Test {
public static void main(String[] args){
Connection con = null;
String conUrl = "jdbc:sqlserver://localhost:1433;databaseName=Northwind;user=user; password =password";
try{
con = DriverManager.getConnection(conUrl);
}catch(Exception e) {e.printStackTrace();}
finally{
if(con != null) try{con.close();}catch(Exception e){}
}
}
}
com.microsoft.sqlserver.jdbc.SQLServerException: Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'localhost', Port 1433. Fehler: 'Connection refused: connect. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird und am Port TCP/IP-Verbindungen akzeptiert. Vergewissern Sie sich, dass am Port keine TCP-Verbindungen durch eine Firewall blockiert werden.'.
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)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
编辑:服务器名是否有问题?通常我的服务器名是TEST\SQLEXPRESS,但我不能在字符串中键入TEST SQL\EXPRESS,所以我决定使用localhost。这就是问题所在吗?
++我使用windows身份验证可能很重要,要知道您是否添加了JDBC驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://HOSP_SQL1.company.com;user=name;password=abcdefg;database=Test");
如果是这样,我想这是一个安全问题。你能用telnet(即telnet)到达这个ip和端口上的服务器吗
更新1:
这是与用户和PW连接的另一种可能性:
// the sql server driver string
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
// the sql server url
String url = "jdbc:microsoft:sqlserver://HOST:1433;DatabaseName=DATABASE";
// get the sql server database connection
connection = DriverManager.getConnection(url,"THE_USER", "THE_PASSWORD");
更新2:
您在cour connectionString中有一个空格:
user=user; password =password
我不知道java是否有这样的程序。您可能会遇到某种安全问题。这是一个开始:。是的,我加了。。尝试过你的版本仍然不起作用:我想这是因为我需要创建一个实例或其他东西。。只是不知道如何。。我会尽力弄清楚:)还是不行。。我想这与代码无关。。TCP视图未将sql server显示为已连接,因此我没有要连接的端口。。我不知道如何使用我在设置中将端口设置为1433中启用的TCP IP端口连接sql server,但仍然没有更改。。