【问题标题】:Connect to SQL server from Java从 Java 连接到 SQL Server
【发布时间】:2021-02-08 02:55:34
【问题描述】:

我正在尝试从 SSMS(SQL Server Management Studio) 连接到 Eclipse(Java),但我不断收到以下错误消息:

com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host localhost, named instance sqlexpress failed. Error: "java.net.SocketTimeoutException: Receive timed out". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434.  For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:234)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:6132)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:2609)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2346)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2213)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1276)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:861)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at net.codejava.sql.JavaConnect2SQL.main(JavaConnect2SQL.java:16)

我的代码是:


import java.sql.DriverManager;
import java.sql.SQLException;

//import com.sun.jdi.connect.spi.Connection;

public class JavaConnect2SQL {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String url = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=students"; // This is where I think the error is
        String user = "sa";
        String password = "123";
        try {
            java.sql.Connection connection = DriverManager.getConnection(url, user, password);
            System.out.println("Succesfully connected to Microsoft SQL Server");
        }catch (SQLException e) {
            System.out.println("Oops! There was an error: ");
            e.printStackTrace();
        }
    }
        
}

我认为问题出在连接 URL 上,但我不知道主机名/实例名。如果您能告诉我如何获取我的主机名/实例名,将不胜感激。但如果是其他问题,请告诉我!

编辑:我已经更改了代码,现在我得到了不同的代码。这是新代码:

package net.codejava.sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JavaConnect2SQL {
    public static void main(String[] args) {

        // Create a variable for the connection string.
        String url = " jdbc:sqlserver://LAPTOP-5697KK36:1433;databaseName=students";
        String user= "sa";
        String password = "123";
        try {
            Connection connection = DriverManager.getConnection(url, user, password);
            System.out.println("Connection succesful!");
        }
        // Handle any errors that may have occurred.
        catch (SQLException e) {
            System.out.println("Here is your error message: ");
            e.printStackTrace();
        }
    }
}

新的错误信息是这样的:

java.sql.SQLException: No suitable driver found for  jdbc:sqlserver://LAPTOP-5697KK36:1433;databaseName=students
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at net.codejava.sql.JavaConnect2SQL.main(JavaConnect2SQL.java:40)

我认为问题在于我安装了错误版本的 JDBC 驱动程序。我的 JRE 版本是 12.0.1。要安装的正确 JDBC 驱动程序是什么。

【问题讨论】:

  • 检查 sql server jdbc 字符串是否为以下格式 jdbc:microsoft:sqlserver://HOST:1433;DatabaseName=DATABASE com.microsoft.jdbc.sqlserver.SQLServerDriver 。如果没有更正hostport,请重试。

标签: java sql-server jdbc


【解决方案1】:

您可以在 SQL Server 配置管理器和 Microsoft SQL Server Management Studio 中查看。该状态必须在服务器配置管理器中运行,您可以尝试使用您的密码在 Microsoft SQL 服务器管理中连接您的数据库。 如果您连接成功,那么还有另一个问题,但看起来数据库已停止。

【讨论】:

    猜你喜欢
    • 2021-03-22
    • 2011-07-28
    • 2011-07-28
    • 2012-04-21
    • 2014-02-08
    • 1970-01-01
    • 2016-07-01
    • 2014-12-25
    • 2014-02-09
    相关资源
    最近更新 更多