无法将Java程序链接到SQL数据库

时间:2013-11-28 20:57:01

标签: java mysql sql sql-server jdbc

我一直在尝试在我的Java程序中将基于JDBC的数据库连接实现到任何数据库管理系统。首先我尝试使用Microsoft SQL Server Management Studio,我的代码如下所示:

public class ConnectionCreate {
    public connectionCreate(){
        try {
            //SQL Server Manager Settings
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test","test","test" );
            System.out.println("Connection Established");

        }catch(Exception e){
            System.out.println(e);
        }
    }
}

我的测试数据库名为test,托管在SQL Server Management Studio的端口1433上,并表示它正在运行。我可以通过Studio GUI修改它,添加表等,但每当我调用我的Java代码时,它都会失败:

  Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Invalid argument: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.

我已经检查了我能想到的所有内容,因为Class.forName调用没有问题,所以肯定会找到JDBC库的jar文件。我一直在使用SQL Server网络配置>协议和我确保所有连接类型都启用,包括TCP / IP。我已经确定要使用的默认端口是1433.我甚至完全禁用了我的防火墙,但它仍然拒绝工作。

出于绝望,我还尝试了一种不同的数据库管理工具。 XAMPP使用PhpmyAdmin和mysql。我再次正确附加了必要的.jar,确保它在我的Web浏览器中本地运行良好,并在我的Java测试脚本中使用以下代码:

public class ConnectionCreate {
    public connectionCreate(){
        try {
            //MySQL Settings
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
            System.out.println("Connection Established");

        }catch(Exception e){
            System.out.println(e);
        }
    }
}

当我运行Java测试程序时,这也给我一个错误。它声明:

 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

我完全不知道该怎么做了,我似乎无法在我的Java程序中建立任何有效的数据库连接,而且我不确定我还需要在我的系统上或在我的代码使它工作。 任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

我在同一台机器上看到SQL Server。

我认为如果您已启用通过TCP / IP访问,则需要检入SQL Server配置管理器,因为SSMS可以使用本机(非TCP / IP)协议。

请参阅TechNet:http://technet.microsoft.com/en-us/library/ms187892(v=sql.105).aspx