salve ho un problema con la connessione ad un dbms MySQL.
al momento della creazione delle tabelle del db salta un eccezione "no database selected".
premetto che a seconda delle necessità creo una connessione con url diversa, infatti uso:
codice:
"jdbc:mysql://localhost/"
se devo controllare la presenza del db e delle tabelle e
codice:
"jdbc:mysql://localhost/" + nome_db
se devo creare le tabelle, effettuare inserimenti ,cancellazioni o aggiornamenti
a questo punto dopo aver creato il database
codice:
SQL_query = "CREATE DATABASE IF NOT EXISTS " + db_name;
stmt.execute(SQL_query);
creo le tabelle
codice:
for(int i=0; i<MAX_NUM_TABLES; i++)
{
//metodo che restituisce la stringa per la creazione della tabella i
SQL_query = getCreateQuery(i);
stmt.execute(SQL_query);
}
a questo punto salta l'eccezione
se invece tra le due operazioni mi disconnetto e mi riconnetto ma con l'url con il nome del db salta l'eccezione
"Connection.close() has already been called. Invalid operation in this state"
non capisco il motivo per cui nonostante mi connetta con l'url specificante il database mi dica che il database non è selezionato, per risolvere questo problema ho notato che basta eseguire una query in più
codice:
SQL_query = "USE " + db_name;
stmt.execute(SQL_query);
sapete spiegarmi il motivo?