我在phpMyAdmin有一個練習數據庫。我使用XAMPP。我正處於與數據庫相關的初級階段。我遵循教程,我認爲我理解這個概念,一切都很酷。但是,我提出了一個問題,儘管互聯網上有答案,但我無法解決這個問題。這裏是我的代碼:到mySQL數據庫的Java連接
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()
。
代碼stucks在該行:
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地址。但所有那些只是不工作。
我真的很感激幫助。是設法接受這些知識的第一步,而我現在實際上不能繼續進行。謝謝:)
- 我注意到,如果我將localhost:1234更改爲像localhost:5432這樣的隨機一個,它立即拋出錯誤。但是,當我有它在1234年(我通過xampp配置選擇端口)然後程序運行約五分鐘之前,它終止異常
爲什麼你(嘗試)在端口1234連接? MySQL偵聽3306 – tkausl
驗證數據庫是否已啓動並運行以下命令:netstat -ano | findstr 1234(如果在windows上),如果在linux上netstat -anp | grep 1234.你看到類似這樣的「TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1316」(最後一個數字是PID,確認它與mysql服務器相同) –
你的連接字符串中的userName和Password在哪裏? 通常我使用這樣的smth: 'String url =「jdbc:mysql://127.8.92.130:3306 /」; String dbName =「test」; String driver =「com.mysql.jdbc.Driver」; String userName =「admin」; String password =「pass」; String sslState =「?useSSL = false」; con = DriverManager.getConnection(url + dbName + sslState,userName,password);' –