Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA - MYSQL] problema connessione

    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
    "no database selected"
    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?
    www.matteosteri.it

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Fra la creazione del DB e la creazione delle tabelle, cambi URL?
    Il problema potrebbe essere dato da questo: quando tu crei un DB in MySQL, quest'ultimo non si posiziona automaticamente al suo interno, ma devi forzarlo ad entrare nel DB appena creato mediante il comando USE.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    quindi si risolve il problema solo così? beh inizialmente avevo fatto in questo modo solo che quyesta mi sembrava una soluzione più simpatica evintando di inviare una query in più prima di ogni operazione.

    comunque grazie, ripristino il tutto come prima
    www.matteosteri.it

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    c'è una soluzione + elegante

    crei il database ciccio
    crei la tabella con CREATE TABLE ciccio.tabelle
    dovrebbe funzionare

  5. #5
    beh è sicuramente più elegante se funziona!
    ora provo grazie!
    www.matteosteri.it

  6. #6
    grazie funge perfettamente!
    www.matteosteri.it

  7. #7

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.