Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    Ok! Una domanda ma perché questa istruzione:
    int Result=s.executeUpdate("CREATE DATABASE databasename");

    e non semplicemente

    s.executeUpdate("CREATE DATABASE databasename");

    ?

    Comunque funziona in entrambi i modi. Ovviamente ho messo la clausola IF NOT EXISTS.
    Però mi è venuto un altro dubbio: e se il database già esiste togliendo l'url dalla connection lui come fa a sapere a quale db collegarsi? Nel mio caso getConnection() e createDb() sono due metodi separati che invoco sequenzialmente.
    edit infatti non va: se oltre a mettere l'istruzione di creazione del database metto anche quella di creazione della tabella mi dice
    java.sql.SQLException: No database selected

    Mi pareva troppo facile...

    Metto i pezzi di codice incriminati:

    codice:
        public static Connection getConnection() throws SQLException {
            return connection = DriverManager.getConnection(url, admin, adm_passwd);
        }
        /**
         * Crea il database se non esistente
        */
        public static void createDb () throws SQLException {
                st=connection.createStatement();
                st.executeUpdate("CREATE DATABASE IF NOT EXISTS TableManager");
                st.executeUpdate("CREATE TABLE IF NOT EXISTS Products");
        }
    Grazie!
    Ultima modifica di Jamie04; 14-03-2014 a 20:51

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da Jamie04 Visualizza il messaggio
    Ok! Una domanda ma perché questa istruzione:
    int Result=s.executeUpdate("CREATE DATABASE databasename");

    e non semplicemente

    s.executeUpdate("CREATE DATABASE databasename");

    ?

    Comunque funziona in entrambi i modi. Ovviamente ho messo la clausola IF NOT EXISTS.
    Ovvio che funziona in entrambi i casi: il metodo viene chiamato comunque, quello che cambia è che nel primo caso ti salvi il valore di ritorno.

    Il significato di quel valore lo trovi nella documentazione: http://docs.oracle.com/javase/7/docs...lang.String%29



    Quote Originariamente inviata da Jamie04 Visualizza il messaggio
    Però mi è venuto un altro dubbio: e se il database già esiste togliendo l'url dalla connection lui come fa a sapere a quale db collegarsi? Nel mio caso getConnection() e createDb() sono due metodi separati che invoco sequenzialmente.
    edit infatti non va: se oltre a mettere l'istruzione di creazione del database metto anche quella di creazione della tabella mi dice
    java.sql.SQLException: No database selected

    Mi pareva troppo facile...
    Immagino che una volta creato il database ti tocchi aprire una nuova connessione in cui questa volta ti colleghi al db appena creato.
    Ma non ho mai provato, in genere le connessioni le ottengo via jndi...
    Ultima modifica di Alex'87; 14-03-2014 a 21:49
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Immagino che una volta creato il database ti tocchi aprire una nuova connessione in cui questa volta ti colleghi al db appena creato.
    Ma non ho mai provato, in genere le connessioni le ottengo via jndi...
    ho provato a farlo modificando così il codice:

    codice:
    public static void createDb () throws SQLException {
                st=connection.createStatement();
                st.executeUpdate("CREATE DATABASE IF NOT EXISTS Mydb");
                connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/Mydb", admin, adm_passwd);
                st.executeUpdate("CREATE TABLE IF NOT EXISTS Products");
        }
    ma mi dà lo stesso errore

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 © 2026 vBulletin Solutions, Inc. All rights reserved.