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

    [JAVA]errore connessione al database

    Ciao ragazzi, ho un problema che blocca il mio lavoro ormai da settinmane, non riesco a collegarmi al database perchè mi scontro in questo errore:

    #
    db error:Unexpected exception encountered during query.
    #

    Qualcuno saprebbe aiutarmi?

    Grazie in anticipo

    Ciao

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    db error:Unexpected exception encountered during query.
    A che query si riferisce?

    Se non riuscissi a collegarti dovrebbe darti un errore di connessione, non un errore durante l'esecuzione di una query..

    Per fugare ogni dubbio posta il codice. Ciao
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Il fatto è che non c'è nessuna query,l'errore lo da su questa invocazione:

    codice:
     db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente);
    hai per caso qualche idea?

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Francamente no.

    Prova a cambiare metodo:

    http://java.sun.com/javase/6/docs/ap...a.lang.String)

    Il driver lo carichi correttamente?
    codice:
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Sei sicuro del valore dei parametri passati?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    64
    Anche io avevo problemi con quella connessione, non ricordo in particolare quale problema, alla fine ho risolto così

    String driver = "com.mysql.jdbc.Driver";
    Class.forName(driver);
    String url = "jdbc:mysql://localhost:3306/nome_db";
    conn = DriverManager.getConnection(url, "user", "password");
    Ciao

  6. #6
    ragazzi niente, non va, non riesco proprio a capire cosa gli sta antipatico alla mi JVM vi posto il codice che magari c'è qualche santo che svela l'arcano...

    codice:
    public class DBConnect {
       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 DBConnect(String nomeDB) { this(nomeDB, "", ""); }
       
      
    
       public DBConnect(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");
            
             System.out.println("DFA");
             // Controllo che il nome del Database non sia nulla
             if (!nomeDB.equals("")) {
    
                // Controllo se il nome utente va usato o meno per la connessione
                if (nomeUtente.equals("")) {
    
                   // La connessione non richiede nome utente e password
                   db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB);
                } else {
    
                   // La connessione richiede nome utente, controllo se necessita anche della password
                   if (pwdUtente.equals("")) {
                      // La connessione non necessita di password
                	 
                     Questa è la linea d'errore--> db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente);
                      
                   } else {
                      // La connessione necessita della password
                      db = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
                      
                   }
                }
    
                // 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;
       }
    La chiamata dal mian è la medesima

    codice:
    DBConnect db = new DBConnect("DB_TennisLAB","root","");
    		
    		db.connetti();	
    		if(db.isConnesso()){
    			System.out.println("connesso");
    		}else{
    			System.out.println("db error:"+db.getErrore());
    			System.exit(0);
    		}
    Grazie

  7. #7
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Scusa, ma perchè qui:

    Questa è la linea d'errore--> db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente);
    scrivi solo localhost


    e qui

    db = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
    scrivi anche :3306 ?

    Qual è la porta alla quale risponde il database? E' 3306? allora deve far sempre parte dell'url.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  8. #8
    beh ma la porta è quella di default,cmq c'ho provato....Ma comunque stesso errore

    codice:
    db error:Unexpected exception encountered during query
    Scusate l'ignoranza ma qui che query chiama???la connessione è una query???

  9. #9
    Controlla che le import in DBConnect si riferiscano a

    import com.mysql.jdbc.Connection;
    import java.sql.DriverManager;

    e quando usi DriverManager.getConnection(....) effettua il casting a Connection:

    codice:
    db =  (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Modifica il codice della mia pillola in questo modo (nel metodo connetti() ):
    codice:
          } catch (Exception e) { 
        	  errore = e.getMessage(); 
              e.printStackTrace();
          }
    Così vediamo di preciso qual è lo stackTrace dell'eccezione.

    Per quanto riguarda il cast è inutile: getConnection() restituisce già un oggetto di tipo Connection.


    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

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.