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.
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.
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
Questo è il listato:
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.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 */ } } } } }
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
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à:
A quanto pare c'è una NullPointerException.Ma non riesco a capire quale oggetto è nullo!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(); } }
Grazie mille, sarebbe stato arduo trovare l'errore senza vedere il codice!Originariamente inviato da tonino1
...Posto il codice per comodità...
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)
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.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?
Una cosa che ho visto manco io so come (non mi sono messa ad esaminare il tuo codice)
sono quasi certa che d non lo hai inizializzato.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; } }
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!!!