我一直在尝试在我的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程序中建立任何有效的数据库连接,而且我不确定我还需要在我的系统上或在我的代码使它工作。 任何帮助都会很棒!
答案 0 :(得分:0)
我在同一台机器上看到SQL Server。
我认为如果您已启用通过TCP / IP访问,则需要检入SQL Server配置管理器,因为SSMS可以使用本机(非TCP / IP)协议。
请参阅TechNet:http://technet.microsoft.com/en-us/library/ms187892(v=sql.105).aspx