У меня есть база данных для практики на phpMyAdmin. Я использую XAMPP. Я нахожусь на очень ранних стадиях, рассказывая о связи с базой данных. Я следую учебнику, и я думаю, что понимаю концепцию, и все круто. Но я наступил на проблему, которая, несмотря на то, что есть ответы в Интернете, я не могу ее решить. Вот мой код:Java-соединение с базой mySQL
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. Я изменил localhost на мой IP-адрес. но все эти просто не работают.
Я бы очень признателен за помощь. Является первым шагом на пути к управлению этими знаниями, и на самом деле я не могу действовать в данный момент. Спасибо :)
- Я заметил, что если я сменил localhost: 1234 на случайный, такой как localhost: 5432, он мгновенно бросает ошибку. Но когда я его на 1234 (который я выбрал через конфигурацию xampp), программа запускается около 5 минут, прежде чем она завершится с исключением
Почему вы (попробуйте) подключить порт 1234? MySQL прослушивает 3306 – tkausl
Проверьте запуск базы данных и запустите следующее: netstat -ano | findstr 1234 (если на окнах), если на linux netstat -anp | grep 1234. Вы видите что-то вроде этого: «TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1316» (последнее число - это PID, проверьте, что это то же самое, что и сервер mysql) –
Где имя пользователя и пароль в строке подключения ? Обычно я использую smth следующим образом: 'String url =" jdbc: mysql: //127.8.92.130: 3306/"; Строка dbName = "test"; String driver = "com.mysql.jdbc.Driver"; Строка userName = "admin"; String password = "pass"; Строка sslState = "? UseSSL = false"; con = DriverManager.getConnection (url + dbName + sslState, имя_пользователя, пароль); ' –