Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213

    problema connessione db java

    Sto provando a utilizzare una connessione a un database mysql con java.Per caricare il driver uso questa:
    Class.forName ("com.mysql.jdbc.Driver").newInstance ();

    L'errore che mi dà però è che non trova la classe.Sto utilizzando netbeans.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,318
    Evidentemente non hai scaricato/inserito fra le librerie di NetBeans il driver JDBC per MySQL, che si chiama Connector/J e che puoi facilmente reperire con una banale ricerca sia qui, che su Google.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    Questo è il listato:
    codice:
    import java.sql.*;
    import javax.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    
       public class Database
       {
           public static void main (String[] args)
           {
               Connection conn = null;
    
               try
               {
                   
                   String url = "jdbc:mysql://localhost/rubrica";
                   Class.forName ("com.mysql.jdbc.Driver").newInstance ();
                   conn = DriverManager.getConnection (url, "root", "ciccione");
                   System.out.println ("Database connection established");
               }
               catch (Exception e)
               {
                   System.err.println ("Cannot connect to database server");
                   e.printStackTrace();
               }
               finally
               {
                   if (conn != null)
                   {
                       try
                       {
                           conn.close ();
                           System.out.println ("Database connection terminated");
                       }
                       catch (Exception e) { /* ignore close errors */ }
                   }
               }
           }
       }
    Oltretutto mi sono scaricato connector/J e ho messo la cartella nella directory di netbeans e ho impostato il classpath.Però continua a non funzionare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    268
    Ciao, ho avuto anche io un pò di problemi. In netbeans devi fare così:
    (uso il mac magari alcuni menù sono spostati)
    1) file --> Project Propriety
    2) Scegli librerie
    3) Add Library , da qui imposti il path corretto alla tua classe jdbc. Puoi utilizzare una libreria che hai già inserito in netbeans o far puntare il tuo progetto ad una libreria esterna.

    Salvi e vedrai che funziona tutto.

    Se hai problemi fammi sapere.

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    Scusatemi per il ritardo.Alla fine sono riuscito a fare la connessione.Ora sto provando a inserire dei dati nella tabella del db tramite delle text.Però mi dà errore.Posto il codice per comodità:
    codice:
    import java.sql.*;
    import javax.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    
    
       public class Database2 extends JFrame implements ActionListener
       {
           JButton in=new JButton("Inserisci");
           JLabel n=new JLabel("Nome");
           JTextField nome=new JTextField(5);
           JLabel c=new JLabel("Cognome");
           JTextField cognome=new JTextField(5);
           JLabel t=new JLabel("Telefono");
           JTextField telefono=new JTextField(5);
           private Connection d; 
          String a,b,y,x;
                
           
           public Database2(){
               super("Database");
               setSize(200,200);
               setSize(200,200);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            GridLayout g=new GridLayout(4,2);
            JPanel pane=new JPanel();
            pane.setLayout(g);
            pane.add(n);
            pane.add(nome);
            pane.add(c);
            pane.add(cognome);
            pane.add(t);
            pane.add(in);
            pane.add(telefono);
            setContentPane(pane);
            setVisible(true);
           nome.addActionListener(this);
           cognome.addActionListener(this);
           telefono.addActionListener(this);
           in.addActionListener(this);
            
           }
           
           public void connetti(){
             try{  
               Statement stmt = null;
                   Connection conn=null;
                   String url = "jdbc:mysql://localhost/rubrica";
                   Class.forName ("com.mysql.jdbc.Driver").newInstance ();
                   d = DriverManager.getConnection (url, "root", "ciccione");
                   System.out.println ("Database connection established");
             }catch (Exception e){
                 e.getMessage();
             }
               
           }
           public static void main (String[] args)
           {
            Database2 d1=new Database2();
              d1.connetti();
             //d1.eseguiAggiornamento(); 
           }    
               
    public void eseguiAggiornamento() {
         String query= "insert into nome values('"+nome.getText()+"','"+cognome.getText()+"',"+telefono.getText()+");"; 
         Statement stmt = null;
          int numero = 0;
          boolean risultato = false;
          try {
              stmt = d.createStatement();
             numero = stmt.executeUpdate(query);
             risultato = true;
             stmt.close();
             
          } catch (SQLException e) {
             e.printStackTrace();
             e.getMessage();
             risultato = false;
             
          }
         
       }
    
    public void actionPerformed(ActionEvent e){
        
        Database2 c1=new Database2();
        a=nome.getText();
        b=cognome.getText();
        x=telefono.getText();
        Object source=e.getSource();
        if(source==in)
        c1.eseguiAggiornamento();
        }
       }
    A quanto pare c'è una NullPointerException.Ma non riesco a capire quale oggetto è nullo!

  6. #6
    Originariamente inviato da tonino1
    ...Posto il codice per comodità...
    Grazie mille, sarebbe stato arduo trovare l'errore senza vedere il codice!

    Siccome l'interprete è così gentile da rivelare anche la riga di codice alla quale si verifica il nullpointer perchè non sei così gentile anche tu da condividere con noi questa informazione?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da satifal
    Siccome l'interprete è così gentile da rivelare anche la riga di codice alla quale si verifica il nullpointer perchè non sei così gentile anche tu da condividere con noi questa informazione?
    quoto alla grande, sapere la riga aiuta: significa che a quella riga qualcosa è null, a questo punto guarda tutto quello che usi e puoi scoprire l'errore.

    Una cosa che ho visto manco io so come (non mi sono messa ad esaminare il tuo codice)

    codice:
    public void eseguiAggiornamento() {
         String query= "insert into nome values('"+nome.getText()+"','"+cognome.getText()+"',"+telefono.getText()+");"; 
         Statement stmt = null;
          int numero = 0;
          boolean risultato = false;
          try {
              stmt = d.createStatement();
             numero = stmt.executeUpdate(query);
             risultato = true;
             stmt.close();
             
          } catch (SQLException e) {
             e.printStackTrace();
             e.getMessage();
             risultato = false;
             
          }
         
       }
    sono quasi certa che d non lo hai inizializzato.
    Poi, usare nomi validi è difficile? a meno che non vuoi offuscare, non ha senso (nemmeno per te) usare lettere per nomi variabili (ti sfido a fare modifiche tra 6 mesi)
    RTFM Read That F*** Manual!!!

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.