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

    Connessione ad un Database MySQL

    Ciao a tutti,
    ho già provato una connessione ad un database Access .
    Vorrei sapere che driver usare per effettuare una connessione a un database MySQL creato con EasyPHP; nel web ho trovato molti programmi, ma nessuno funzionava.

    saluti,
    Kevin

    ps. Non sò se serve, ma lavoro con Windows XP / Windows Vista

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Connessione ad un Database MySQL

    Originariamente inviato da Kevinoo
    Vorrei sapere che driver usare per effettuare una connessione a un database MySQL
    Il driver JDBC ufficiale è il Connector/J, lo trovi sul sito del MySQL:

    http://www.mysql.com/products/connector/
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da andbin
    Il driver JDBC ufficiale è il Connector/J, lo trovi sul sito del MySQL:

    http://www.mysql.com/products/connector/
    Grazie, dopo averlo scaricato lo devo scompattare e inserire la cartella nella directory del JDK ?! Giusto? :master:

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da Kevinoo
    lo devo scompattare e inserire la cartella nella directory del JDK ?!
    No, il jar del driver non lo devi scompattare. E nemmeno inserirlo nella directory del JDK.

    Può stare ovunque tu voglia come directory sul file-system ... purché tale directory sia in "classpath", in un modo o nell'altro.
    Se volessi puoi sfruttare il meccanismo di "extension" mettendo il jar dentro la lib/ext di un JRE. In tal caso non devi toccare nulla riguardo il classpath.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Re: Re: Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da andbin
    No, il jar del driver non lo devi scompattare.
    L'ho chiesto perchè scaricavo il ".zip", ma non trovavo i file..

    Originariamente inviato da andbin
    Se volessi puoi sfruttare il meccanismo di "extension" mettendo il jar dentro la lib/ext di un JRE. In tal caso non devi toccare nulla riguardo il classpath.
    Ho fatto come hai detto... spero che funzioni.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da Kevinoo
    Ho fatto come hai detto... spero che funzioni.
    Se ti riferisci al meccanismo di extension, nota che quando installi il JDK viene installato un JRE "privato" (per i tools del JDK) e uno (opzionale ... dipende da cosa hai selezionato durante il setup) "pubblico" usato da applicazioni in generale e dai browser.

    Se metti qualcosa nella lib/ext, conviene farlo per tutti i JRE, quello privato e quello pubblico.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7

    Re: Re: Re: Re: Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da andbin
    Se metti qualcosa nella lib/ext, conviene farlo per tutti i JRE, quello privato e quello pubblico.
    Nel mio pc, nella cartella "C:\Programmi\Java" ho due cartelle: jre6 e jdk1.6.0_02 per non sbagliare.. ho messo in entrambe le parti i file scaricati..
    Ho fatto bene?!

    Se "Sì", che nome devo inserire qui?
    codice:
    Class.forName(" ???? ");

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da Kevinoo
    Nel mio pc, nella cartella "C:\Programmi\Java" ho due cartelle: jre6 e jdk1.6.0_02 per non sbagliare.. ho messo in entrambe le parti i file scaricati..
    Ho fatto bene?!
    La ext del JRE privato è jdk1.6.0_02\jre\lib\ext mentre quella del JRE pubblico è jre6\lib\ext.

    Originariamente inviato da Kevinoo
    che nome devo inserire qui?
    codice:
    Class.forName(" ???? ");
    Trovi tutto spiegato passo passo nella documentazione online del Connector/J:

    http://dev.mysql.com/doc/refman/5.0/...-examples.html
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9

    Re: Re: Re: Re: Re: Re: Re: Re: Connessione ad un Database MySQL

    Originariamente inviato da andbin
    Trovi tutto spiegato passo passo nella documentazione online del Connector/J:

    http://dev.mysql.com/doc/refman/5.0/...-examples.html
    Partendo dal fatto che il mio inglese è pessimo.. ho seguito la guida, ma il risultato è sempre lo stesso.. "Impossibile connettersi al database"..

    ecco il codice della classe Database

    codice:
    import java.sql.*;
    import java.util.Vector;
    
    public class Database {
       private String nomeDB;       // Nome del Database a cui connettersi
       private String nomeUtente;   // Nome utente utilizzato per la connessione al Database
       private String pwdUtente;    // Password usata per la connessione al Database
       private String errore;       // Raccoglie informazioni riguardo l'ultima eccezione sollevata
       private Connection db;       // La connessione col Database
       private boolean connesso;    // Flag che indica se la connessione è attiva o meno
    
       public Database(String nomeDB) { this(nomeDB, "", ""); }
    
       public Database(String nomeDB, String nomeUtente, String pwdUtente) {
          this.nomeDB = nomeDB;
          this.nomeUtente = nomeUtente;
          this.pwdUtente = pwdUtente;
          connesso = false;
          errore = "";
       }
    
       // Apre la connessione con il Database
       public boolean connetti() {
          connesso = false;
          try {
             // Carico il driver JDBC per la connessione con il database MySQL
             Class.forName("com.mysql.jdbc.Driver").newInstance();
    
             // Controllo che il nome del Database non sia nulla
             if (!nomeDB.equals("")) {
    
               try{
                  // La connessione necessita della password
                  db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
               }catch(SQLException ex){
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println("SQLState: " + ex.getSQLState());
                        System.out.println("VendorError: " + ex.getErrorCode());
                        }
                // La connessione è avvenuta con successo
                connesso = true;
             } else {
                System.out.println("Manca il nome del database!!");
                System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\"");
                System.exit(0);
             }
          } catch (Exception e) { errore = e.getMessage(); }
          return connesso;
       }
    
    
       // Esegue una query di selezione dati sul Database
       // query: una stringa che rappresenta un'istruzione SQL di tipo SELECT da eseguire
       // colonne: il numero di colonne di cui sarà composta la tupla del risultato
       // ritorna un Vector contenente tutte le tuple del risultato
       public Vector eseguiQuery(String query) {
          Vector v = null;
          String [] record;
          int colonne = 0;
          try {
             Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
             ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
             v = new Vector();
             ResultSetMetaData rsmd = rs.getMetaData();
             colonne = rsmd.getColumnCount();
    
             while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
                record = new String[colonne];
                for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
                v.add( (String[]) record.clone() );
             }
             rs.close();     // Chiudo il ResultSet
             stmt.close();   // Chiudo lo Statement
          } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
    
          return v;
       }
    
       // Esegue una query di aggiornamento sul Database
       // query: una stringa che rappresenta un'istuzione SQL di tipo UPDATE da eseguire
       // ritorna TRUE se l'esecuzione è adata a buon fine, FALSE se c'è stata un'eccezione
       public boolean eseguiAggiornamento(String query) {
          int numero = 0;
          boolean risultato = false;
          try {
             Statement stmt = db.createStatement();
             numero = stmt.executeUpdate(query);
             risultato = true;
             stmt.close();
          } catch (Exception e) {
             e.printStackTrace();
             errore = e.getMessage();
             risultato = false;
          }
          return risultato;
       }
    
       // Chiude la connessione con il Database
       public void disconnetti() {
          try {
             db.close();
             connesso = false;
          } catch (Exception e) { e.printStackTrace(); }
       }
    
       public boolean isConnesso() { return connesso; }   // Ritorna TRUE se la connessione con il Database è attiva
       public String getErrore() { return errore; }       // Ritorna il messaggio d'errore dell'ultima eccezione sollevata
    }
    Qui il main

    codice:
    import java.sql.*;
    import java.util.Vector;
    
    public class main{
      public static void main(String[] args){
        
    Database db = new Database("prova","Kevinoo","niveko");
    if ( !db.connetti() ) {
       System.out.println("Errore durante la connessione.");
       System.out.println( db.getErrore() );
       System.exit(0);
    }
    
    // Eseguo una query sul database. La tabella si chiama Tbl.
    Vector v = db.eseguiQuery( "SELECT * FROM tab;" );
    
    // Stampiamo i risultati:
    int i = 0;
    while ( i<v.size() ) {
       String[] record = (String[]) v.elementAt(i);
       System.out.println("Record numero " + (i+1) );
       for (int j=0; j<record.length; j++) {
          System.out.println( record[j] );
       }
    }
    
    // Ora chiudo la connessione col Database:
    db.disconnetti();
    
      } 
    }

    Non ce la faccio più, è da circa un mese che cerco d'effettuare una connessione a MySQL!

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    16
    Ti metto lì 3 cose:
    1) il driver. io ho sempre usato org.gjt.mm.mysql.Driver con discreto successo;
    2) a me 'sta cosa del newInstance() proprio non mi convince. io lo toglierei;
    3) io l'istanza di connessione di norma la faccio così: conn = DriverManager.getConnection("jdbc:mysql://"+serverName+":3306/"+database, username, password).

    Vedi se questi accorgimenti ti possono aiutare.

    ciao

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