我在phpMyAdmin有一个练习数据库。我使用XAMPP。我正处于利用数据库学习连接的早期阶段。我遵循教程,我认为我理解这个概念,一切都很酷。但我提出了一个问题,尽管互联网上有答案,我无法解决它。这是我的代码:
import java.sql.*;
public class DBConnect {
private Connection connection;
private Statement statement;
private ResultSet result;
public DBConnect(){
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb"); //code stucks here and after some minutes it is throwing an exception
System.out.println("Connected");//this is never executed.
statement = connection.createStatement();
} catch (Exception ex) {
System.out.print("Error in Constractor: "+ex);
}
}
public void getData() {
try {
String query = "select * from cars";
result = statement.executeQuery(query);
while (result.next()) {
String name = result.getString("carName");
String id = result.getString("carID");
String modelNum = result.getString("modelNumber");
System.out.println("Car name: " + name + ", " + "Car ID: " + id + ", " + "Car model number: " + modelNum);
}
} catch (Exception ex) {
System.out.println(ex);
}
}
}
在主类中,我创建了一个类的实例,然后调用getData()
。
代码卡在那一行:
connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb");
它抛出了:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
成功发送到服务器的最后一个数据包是0毫秒前。驱动程序尚未收到server.java.lang.NullPointerException
这里回答了类似的问题:answer
但建议很差。我试过冲dns。我检查了URL,这是我连接到phpmyadmin上的数据库的URL。我将localhost更改为我的ip地址。但所有那些只是不工作。
我真的很感激帮助。是管理接收知识的第一步,我现在实际上无法继续。谢谢:))
答案 0 :(得分:-3)
通常MySQL会侦听默认端口3306。 如果您的数据库名为 practomeb ,那么您的代码应如下所示:
private Connection connection;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/practicedb");
System.out.println("Connected");
} catch (Exception ex) {
System.out.print("Error creating connection: "+ex);
}