有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java连接SQL server 2012 Eclipse Neon

我正在从事一个项目,其中需要将EclipseIDE连接到SQLServer数据库。我下载并导入了。jar SQLJBDC驱动程序文件,并将以下代码放入我的类中:

`import java.sql.*;
import java.sql.DriverManager;

public class connexion {

// Méthode permettant d'enregistrer des données dans la base de données
public static void rempli() {

    String url = "jdbc:sqlserver://localhost:1433;databaseName=Tunnel" ;// le chemin vers le serveur de BD et la base de données
    String user = "sa"; // Nom d'un utilisateur de la base de données
    String pass = "*********"; // Son mot de passe
    Connection cn = null; // Déclaration d'un objet de type connection, il permet d'utiliser une méthode de connexion
    Statement st = null; // Déclaration d'un objet Statement. il permet d'envoyer des requêtes
    try {

                //Etape 1 : Chargement du driver
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                //Etape 2 : récupération de la connexion
            cn = DriverManager.getConnection(url, user, pass);


    }
    catch (SQLException | ClassNotFoundException e) {

        e.printStackTrace();
    }
}
public static void main(String[] args) {

    rempli();
}
}`

当我启动程序时,我在将近20秒后得到了以下答案:

com.microsoft.sqlserver.jdbc.SQLServerException: Échec de la connexion TCP/IP à l'hôte localhost, port 1433. Erreur : « Connection refused: connect. Vérifiez les propriétés de connexion. Assurez-vous qu'une instance de SQL Server est en cours d'exécution sur l'hôte et accepte les connexions TCP/IP au port. Vérifiez que les connexions TCP au port ne sont pas bloquées par un pare-feu. ».
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:191)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:242)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2369)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:551)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1963)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at connexion.rempli(connexion.java:21)
at connexion.main(connexion.java:32)

我停用了我的防火墙,授权访问不同的TPC端口,现在我真的不知道该怎么做了。有人能帮我吗

谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    如果已将MS SQL server配置为侦听TCP/IP流量,则可能是以下原因之一:

    • 防火墙正在阻止传入连接
    • SQL SERVER未在主机上运行
    • 您配置的端口不正确,即不是1433

    如果您已验证问题不属于上述类别,则可以尝试执行此操作以启用TCP/IP通信的端口1433

    • 转到开始->;所有计划->;Microsoft SQL Server 2008/2012/2014->;配置工具
    • 单击SQL Server配置管理器
    • 展开SQL Server网络配置->;协议
    • 启用TCP/IP右框
    • 双击TCP/IP,进入IP地址选项卡,在TCP端口下添加1433

    在这些更改之后,您必须重新启动SQL Server Services > SQL Server

    如果这些不起作用,那么你也可以考虑添加以下内容:

    System.setProperty("java.net.preferIPv4Stack", "true");
    

    或者将其作为VM选项传递:-Djava.net.preferIPv4Stack=true

    希望这有帮助