【发布时间】:2014-11-12 12:04:52
【问题描述】:
来自 php 背景,我完全迷失在 JAVA 架构中。 这是我 10 多年来的第一个桌面应用程序,也是我的第一个 Java 应用程序。所以请原谅菜鸟的问题。
我使用 netbeans 7.0.1 + JDK 1.7.0。只需一个按钮即可创建新的桌面应用程序。 执行“导入 java.sql.*;”在“DesktopAppView.java”页面的顶部。 我去了图书馆,然后添加了 MYSQL JDBC 驱动程序。甚至从 MYSQL 站点下载并添加了最新的 JDBC 连接。
进入服务面板,右键单击驱动程序、MySQL(连接器/J 驱动程序)并添加新连接并能够连接到数据库。
然后在“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 在这里发布的所有内容...Solving a "communications link failure" with JDBC and MySQL 没有任何效果
请帮忙!!!
【问题讨论】:
-
你是否在连接 URL 中指定了 MySQL 端口?
-
@Sridhar 只要 MySQL 在默认端口上运行,不需要在 url 中指定端口。
-
再次启动 NetBeans,不要进入服务。不太可能,但可能这两个访问(服务和您的应用程序)发生冲突。
-
尝试为数据库指定密码并使用com.mysql.jdbc驱动
-
@Sridhar... mysql 正在运行默认的 3306 端口,我已尝试将其添加到 url 字符串(localhost:3306 或 127.0.0.1:3306 或 my-ip:3306) 但没有成功
标签: java mysql netbeans jdbc desktop