来自php背景,我完全迷失在JAVA架构中。这是我10多年来的第一个桌面应用程序,也是我的第一个Java应用程序。所以,请原谅那些愚蠢的问题。
我使用的是netbeans 7.0.1+JDK 1.7.0。只需一个按钮即可创建新的桌面应用程序。执行"DesktopAppView.java"页面顶部的"importjava.sql.*;"。我去了图书馆,然后添加了MYSQL JDBC驱动程序。甚至从MYSQL站点下载并添加了最新的JDBC连接。
转到服务面板,右键单击Drivers,MySQL(Connector/J驱动程序),添加了新的连接,并能够连接到DB。
然后在"DesktopAppView.java"页面的按钮点击功能中,我添加了:
//String driver = "com.mysql.jdbc.Driver";
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost/test";
String username = "root";
String password = "";
Class.forName(driver); // load MySQL driver
//Class.forName(driver).newInstance(); // load MySQL driver
Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("done");
当涉及到"getConnection"部分时,应用程序只是挂起。当我在url字符串中添加"?connectTimeout=3000"时,它会超时应用程序引发异常:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure...
......
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.net.SocketTimeoutException: Connect timed out
at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:125)
但是,当在netbeans(而不是桌面应用程序)中创建java应用程序时。。相同的连接代码工作正常???
在过去的两天里,我正在拔头发。我不确定桌面应用程序中添加了哪些可能与数据库连接冲突的内容。
我已经尝试了SOheil在这里发布的所有内容。。。解决";通信链路故障";使用JDBC和MySQL什么都不起作用
PLs救命!!!
我最终在netbeans(而不是桌面应用程序)中创建了一个java应用程序,并自己完成了所有的框架/面板/按钮代码。
上面的JDBC代码工作得很好。仍然不明白为什么创建一个桌面应用程序不想连接到DB???
您的问题是以下之一:
- 您的my-sql服务器没有在3306端口上侦听,或者服务没有正确启动
您可以使用mysql管理员GUI来发现这一点。如果你能连接到你的数据库,服务就会以正确的方式启动。
- 您有一个防病毒软件或防火墙,可以阻止对系统3306端口的通信请求,因为它会将其检测为攻击
祝你好运。