Devi chiarire un po' le tue idee.
Differenza fra DB e DBMS.
DBMS: MySQL
DB: un qualunque "schema" di DB presente nel DBMS (esempio, "test").
Tu devi verificare la presenza del DBMS MySQL o di un DB al suo interno?
Per la prima è sufficiente verificare se la connessione viene instaurata. Quindi:
codice:
try {
Class.forName("com.mysql.jdbc.Driver");
Connection db = DriverManager.getConnection("jdbc:mysql://" + host + "/test" + "?user=" + nomeUtente + "&password=" + pwdUtente);
// Se arrivo qui il DBMS è installato (ed è anche presente il DB "test")
} catch (Exception e) {
// Nessuna connessione: è possibile che il DBMS non sia installato
}
Per la seconda, devi seguire il consiglio di peppem:
codice:
try {
Statement stmt = db.createStatement();
ResultSet rs = stmt.executeQuery("SHOW DATABASES"); // o SHOW SCHEMAS
// Scorri il ResultSet alla ricerca del DB che ti interessa
String dbInteresse = "...";
boolean trovato = false;
while(!trovato && rs.next()) { // Scorro tutto il ResultSet
String nDb = rs.getString( 1 );
trovato = nDb.equalsIgnoreCase( dbInteresse );
}
if ( trovato ) {
// Il DB esiste
} else {
// Il DB non esiste
}
} catch (Exception e) {
// Errore durante l'esecuzione dell'istruzione
}
Ciao.