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

    Errore connessione database

    Salve ragazzi,

    ho letto attentamente un post che mi è stato suggerito da un altro utente per quanto riguarda la connessione di un database in java. Ora ho scaricato la libreria di Mysql consigliata e ho copiato una classe sempre suggerita nel post.

    Adesso però non riesco a eseguire la connessione col database. Questo sicuramente è dovuto al fatto che non riesce a trovare dove sta il database.

    Io ho creato il database con MySql Administrator e provando a connettermi il mio programma va in errore.

    Mi sapere dare ulteriori info a riguardo'???

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Possono esserci svariate ragioni... l'installazione di mysql è andata a buon fine? Stai usando i parametri corretti? Il database esiste? (sembra banale, ma non basta installare mysql... bisogna poi creare il database a cui ci si vuole connettere, e possibilmente aggiungere qualche tabella con qualche record per sperimentare un po', oltre alla connessione).
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Certo che l'installazione di MySql è andata a buon fine, lo utilizzo quasi tutti i giorni.

    Ho creato anche un database chiamato icecream2 con una tabella e 3 record.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    allora vediamo un po' di codice e di errori.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Allora questa è la classe per poter effettuare le chiamate al database come sicuramente ben saprai.

    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");
    
             // 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
                      db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente);
                   } else {
    
                      // La connessione necessita della password
                      db = DriverManager.getConnection("jdbc:mysql://localhost/" + 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;
       }
    
       // 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
    }

    La mia classe main:

    codice:
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.TableModel;
    
    import java.awt.*;
    import java.awt.event.*;
    
    public class AllFrameDesktopContainer{
      JDesktopPane desk;
      JInternalFrame iframe;
      JFrame frame;
      public static void main(String[] args) {
        AllFrameDesktopContainer d = new AllFrameDesktopContainer();
        Database db = new Database("mysql");    //QUI IO SOSTITUISCO MYSQL CON icecream2 che è il nome del mio database
        if ( !db.connetti() ) {
           System.out.println("Errore durante la connessione.");
           System.out.println( db.getErrore() );
           System.exit(0);
        }
    
      }
    
      public AllFrameDesktopContainer(){
        frame = new JFrame("IceCream 1.0");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        desk = new JDesktopPane();
        try{
         
            iframe = new JInternalFrame("Internal Frame: " , true, true, true, true);
           
            iframe.setVisible(true);
            desk.add(iframe);
         
        }
        catch(NumberFormatException ne){
          
          System.exit(0);
        }
        
        //creo il Menù Principale
        JMenuBar menubar = new JMenuBar();
        
        //creo il menù file
        JMenu count = new JMenu("File");
        count.addMenuListener(new MyAction());
        menubar.add(count);
        
        //creo il menù Exit
        JMenu exit = new JMenu("Exit");
        exit.addMenuListener(new Esci());
        menubar.add(exit);
        
        
        frame.setJMenuBar(menubar);
        frame.add(desk);
        frame.setSize(800,600);
        frame.setVisible(true);
        
        
        //adesso crero una tabella
        
    	
    	
      }
    
      public class MyAction implements MenuListener{
        public void menuSelected(MenuEvent me){
          
        }
    
        public void menuCanceled(MenuEvent me){}
    
        public void menuDeselected(MenuEvent me){}
      }
      
      public class Esci implements MenuListener{
    	    public void menuSelected(MenuEvent me){
    	        System.exit(0);
    	    }
    
    	    public void menuCanceled(MenuEvent me){}
    
    	    public void menuDeselected(MenuEvent me){}
    	  }
    }

    questo è l'errore che viene generato da eclipse:

    Errore durante la connessione.
    com.mysql.jdbc.Driver

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    usi user e password?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    No ho installato MySql senza user e senza password

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non so che dire... controlla solo che la versione del Connector che usi sia appropriata per la versione di MySQL installata
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Salve ragazzi, finalmente sono riuscito a risolvere il mio problema. In pratica non aveva caricato bene la libreria di Mysql per java.

    Adesso però avrei un'altra questione da porvi. Non voglio aprire un nuovo thread e quindi chiedo sempre qui.

    Io ho tramite la mia applicazione caricato il database, il quale per il momento ha solamente una tabella con qualche tupla di prova. Ho provato ad effettuare delle query e tutto ok non ci sono problemi.

    Ora però vorrei fare in modo che quando premo un tasto o altro mi venga caricato il contenuto del database in una tabella o una lista.

    La mia tabella si chiama Ingredienti e ha 7 campi, io però voglio che solamente il campo Descrizione_Ingrediente venga visualizzato nella tabella.

    La query la conosco però non so come poter riempire la tabella.

    Voi cosa consigliate di utilizzare una JTable oppure una JList???

    Io voglio che una volta caricati questi dati o in una JTable o in una JList l'utente deve poter selezionare un elemento e questo venga caricato insieme agli altri campi in una tabella.

    Spero di essere stato chiaro

    Saluti Michele

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    16
    Non sò se ho capito bene, ma io ho fatto cos':
    nella mia pag html ho una form, ed un campo è costituito da una option, cioè la scelta tra varie opzioni
    <FORM METHOD="POST" ACTION="nomeServlet">
    ...
    TIPO: <select name="tipo">
    <option selected value="o1">o1</option>
    <option value="o2">o2</option>
    <option value="03">o3</option>
    <option value="altro">Altro</option><tr></tr>
    </select>
    ...
    </FORM>

    nella Servlet:
    String tipo= request.getParameter("tipo");
    ...
    c.setTipo(tipo);

    Nel mio db tipo è una Varchar, cioè una stringa
    Spero di esserti stata utile!

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.