Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [JAVA]-Creazione DATABASE

    Salve amici, mi sapete dire come fare a dare la stringa SQL Create Database in JAVA?
    Ho creato il database con MySql, utilizzando la Shell di MySQL.
    Il mio programma Java si interfaccia con tale Database ma ora devo dare la possibilitā di creare il DB.
    Mentre per le operazioni di ricerca,cancellazione e modifica delle tabelle utilizzavo uno Statement e una Connessione al DB creato, ora come faccio ad eseguire la CREATE se non esiste alcun riferimento per Statement e Connection?

    Grazie per le risposte. CIAO

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    mi pare una roba insolita, creazioni di tabelle ne ho viste
    in teoria devi collegarti a un database come root con un preparedStatement creare un database

  3. #3
    potresti dirmi come utilizzare il prepareStement?, non l'ho mai usato e non so cosa č.

    Grazie

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    PreparedStatement ps = conn.prepareStatement("create database ...");
    ps.execute();

  5. #5
    void setup()
    {
    conn = Conn ("//" + server + "/" + database, user, password, driver);
    if (conn != null) {

    PreparedStatement ps = conn.prepareStatement("create database prova");
    ps.execute();

    dbst = conn.createStatement();

    }

    Connection Conn (String db, String user, String pwd, String driver) {
    Connection c = null;
    String dbUrl;
    try {
    Class.forName(driver);
    } catch (ClassNotFoundException e) {
    printException ("Non trovo il driver del database", e);
    return null;
    }
    dbUrl = "jdbc:mysql://localhost/"+database;
    try {
    c = DriverManager.getConnection(dbUrl, user, pwd);
    } catch (SQLException e) {
    printException ("Non riesco a connettermi con il database " + db,e);
    return null;
    }

    ta.append ("Connesso con il database " + db);
    return c;
    }
    }


    Qui ho messo 2 procedure: la prima dovrebbe crearmi il DB, mentre la seconda crea la connessione.

    Nella procedura Conn (la seconda) viene richiesto il nome del DB per ottenere l'URL dell'archivio.
    Nella procedura setup (la prima) viene richieta una connessione.

    Sembra un gatto che si morde la coda!

    Come posso fare? devo rifare la procedura Conn (che funziona benissimo) ?

    Ciao e TANTE grazie

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    tu ti connetti a un database che esiste, poi crei un altro e ti connetti a questo appena creato

  7. #7
    adesso provo a connettermi al dabase mysql che viene creato all'atto dell'installazione di MySql.
    A questo punto creo il database con l'istruzione che mi hai dato prima.
    Mi sai dire qual'č l'opzione da dare nella stringa SQL CREATE DATABASE per vedere se un certo DB esiste giā?

    CIAO e 1000 GRAZIE

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    credo non ci sia u comando che guarda se esiste il database
    fai cosė, in un try catch fai la connessione al database che vuoi creare, se si connette significa che esiste, se entra nel catch ... no

  9. #9
    void setup()
    {
    try
    {
    conn = Conn ("//" + server + "/mysql", user, password, driver);
    if (conn != null) {

    PreparedStatement ps = conn.prepareStatement("create database prova");
    ps.execute();

    dbst = conn.createStatement();
    /*************CREAZIONE TABELLA Tlocale***/
    dbst.executeUpdate(" CREATE TABLE tlocale ( " +
    " Id_Tipo_Locale int(11) NOT NULL auto_increment, " +
    " Tipo_Locale enum('Laboratorio','Studio Professore') default NULL, " +
    " PRIMARY KEY (Id_Tipo_Locale), " +
    " UNIQUE KEY Id_Tipo_Locale (Id_Tipo_Locale) ) TYPE=InnoDB ");

    /**************CREAZIONE**TABELLA**LOCALE********** *************/
    dbst.executeUpdate(" CREATE TABLE locale ( " +
    " Id_Locale int(11) NOT NULL auto_increment, " +
    " Id_Tipo_Locale int(11) default NULL, " +
    " Descrizione char(20) default NULL, " +
    " Ubicazione char(20) default NULL, " +
    " Telefono char(10) default NULL, " +
    " Responsabile char(20) default NULL, " +
    " PRIMARY KEY (Id_Locale), " +
    " UNIQUE KEY Id_Locale (Id_Locale), " +
    " UNIQUE KEY Telefono (Telefono), " +
    " KEY Id_Tipo_Locale (Id_Tipo_Locale), " +
    " FOREIGN KEY (Id_Tipo_Locale) REFERENCES tlocale (Id_Tipo_Locale) ON DELETE CASCADE ON UPDATE CASCADE " +
    " ) TYPE=InnoDB ");

    /**************CREAZIONE***TABELLA***PERSONA******* ***************/
    dbst.executeUpdate(" CREATE TABLE persona ( " +
    " Id_Persona` int(11) NOT NULL auto_increment, " +
    " Cognome char(30) default NULL, " +
    " Nome char(20) default NULL, " +
    " Ntel char(10) default NULL, " +
    " PRIMARY KEY (Id_Persona), " +
    " UNIQUE KEY Id_Persona (Id_Persona), " +
    " UNIQUE KEY Ntel (Ntel) " +
    " ) TYPE=InnoDB ");

    /**************CREAZIONE***TABELLA**Tapparato****** ****************************/
    dbst.executeUpdate(" CREATE TABLE tapparato ( " +
    " Id_Tipo int(11) NOT NULL auto_increment, " +
    " Tipo_Apparato enum('Computer','Hub','Router','Switch') default NULL, " +
    " PRIMARY KEY (Id_Tipo), " +
    " UNIQUE KEY Id_Tipo (Id_Tipo) " +
    " ) TYPE=InnoDB ");

    /***************CREAZIONE**TABELLA**APPARATO******* **************************/
    dbst.executeUpdate(" CREATE TABLE apparato ( "+
    " Id_Apparato int(11) NOT NULL auto_increment, "+
    " Id_Persona int(11) default NULL, "+
    " Id_Locale int(11) default NULL, "+
    " Id_Tipo int(11) default NULL, "+
    " Descrizione char(20) default NULL, "+
    " Mac_Address char(20) default NULL, "+
    " Ip char(20) default NULL, "+
    " Router char(20) default NULL, "+
    " DNS char(20) default NULL, "+
    " PRIMARY KEY (Id_Apparato), "+
    " UNIQUE KEY Id_Apparato (Id_Apparato), "+
    " UNIQUE KEY Ip (Ip), "+
    " UNIQUE KEY Mac-Addrerss (Mac_Address), "+
    " KEY Id_Locale (Id_Locale), "+
    " KEY Id_Persona (Id_Persona), "+
    " KEY Id_Tipo (Id_Tipo), "+
    " FOREIGN KEY (Id_Tipo) REFERENCES tapparato (Id_Tipo) ON DELETE CASCADE ON UPDATE CASCADE, "+
    " FOREIGN KEY (Id_Locale) REFERENCES locale (Id_Locale) ON DELETE CASCADE ON UPDATE CASCADE, "+
    " FOREIGN KEY (Id_Persona) REFERENCES persona (Id_Persona) ON DELETE CASCADE ON UPDATE CASCADE "+
    " ) TYPE=InnoDB ");
    }
    } catch (SQLException e) {
    printException ("Non riesco a connettermi con il database ",e);
    }
    }



    Non ho errori di compilazione ma con questo sistema non vien creato niente.
    In che cosa sbaglio?

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    metti dei System.out.print dopo ogni istruzione e vedi se vengono eseguite tutte, il codice pare corretto

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.