/ / Connessione Java al database mySQL: java, mysql, jdbc

Connessione Java al database mySQL: java, mysql, jdbc

ho un database per esercitarsi su phpMyAdmin. io uso XAMPP. Sono in una fase iniziale di apprendimento della connessione con un database. Seguo un tutorial e penso di capire il concetto e tutto è bello. Ma ho pestato un problema che, nonostante il fatto che ci siano risposte su Internet, non posso risolverlo. ecco il mio codice:

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);
}

}
}

Nella classe principale creo un'istanza della classe e poi chiamo il getData().

Il codice si blocca in quella linea:

connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/practicedb");

E lancia quello:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

L'ultimo pacchetto inviato correttamente al server era 0 millisecondi fa. Il driver non ha ricevuto alcun pacchetto dal server.java.lang.NullPointerException

Questa domanda simile è stata risposta qui: risposta

Ma i suggerimenti sono poveri. Ho provato a lavare il DNS. Ho controllato l'URL e questo è quello che mi collego al database su phpmyadmin. Ho cambiato localhost al mio indirizzo IP. ma tutti quelli non funzionano.

Apprezzerei molto l'aiuto. È il primo passo per riuscire a ricevere quella conoscenza e in realtà non posso procedere al momento. Grazie :)

  • ho notato che se cambio il localhost:1234 a uno casuale come localhost: 5432 sta lanciando immediatamente l'errore. Ma quando lo ho su 1234 (che ho scelto la porta attraverso xampp config), il programma gira per circa 5 minuti prima che venga terminato con l'eccezione

risposte:

-3 per risposta № 1

Solitamente MySQL ascolta la porta predefinita 3306. Se il tuo database è nominato practicedb allora il tuo codice dovrebbe assomigliare a questo:

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);
}