Questa è l'uscita del programma indicato di seguito:JDBC: connessione che restituisce NULL, cosa fare?
Connection made!
Schema Name:null
Successfully connected to null
Releasing all open resources ...
All'interno EstablishConnection(), conn viene inizializzata come nullo. Quindi la prima istruzione all'interno del blocco try deve stabilire una connessione con il database e la terza istruzione stampa il nome dello schema corrente di conn.
In base allo API, getSchema() restituisce il nome schema corrente o null se non ce n'è.
Ciò significa che non esiste uno schema (penso che il nome dello schema sia uguale al nome del database) associato a conn? Qualcuno può suggerire se sono corretto nella mia previsione, e anche suggerire perché non esiste uno schema o null associato a conn?
public class ConnectDB {
private Connection establishConnection() throws SQLException {
Connection conn = null;
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test_final1", "root", "password");
System.out.println("Connection made!");
System.out.println("Schema Name:"+conn.getSchema()+"\n");
} catch (SQLException sqle) {
System.err.println("SQL Exception thrown while making connection");
printSQLException(sqle);
}
return conn;
}
public static void main(String[] args) {
ConnectDB cdb= new ConnectDB();
Connection myconn=null;
try{
myconn=cdb.establishConnection();
if(myconn!=null) System.out.println("Successfully connected to " + myconn.getSchema());
}catch (SQLException e) {
ConnectDB.printSQLException(e);
} catch (Exception e) {
e.printStackTrace(System.err);
} finally {
ConnectDB.closeConnection(myconn);
}
}
questa domanda non è un duplicato. L'altra domanda riguarda Android, molto sul driver JTD (non l'ho usato). Sto postando questo commento per chiarimenti, dal momento che avevo ricevuto un commento che diceva che si tratta di un duplicato, che è stato cancellato dopo la mia spiegazione. – Solace
Dov'è il codice in cui è stato caricato il 'driver MYSQL' –
People! Il problema non è di ottenere una connessione 'nullo' ma di un valore di ritorno' null' dall'esecuzione del metodo 'Connection # getSchema'. –