ciao a tutti,
ho scritto un programma in java che interfaccia un database in My-Sql come posso stampare tutti i record del database.
grazie in anticipo
ciao a tutti,
ho scritto un programma in java che interfaccia un database in My-Sql come posso stampare tutti i record del database.
grazie in anticipo
Questa è per una stampa su video, se invece devi stampare su carta, potresti provare invece del System.out.println(); un metodo per scriverelo su file per poi stamparlo.codice:try { // Carica i driver JDBC per MySQL Class.forName("com.mysql.jdbc.Driver"); // Apre la connessione con il database con = DriverManager.getConnection(url, usr, psw); // crea uno 'statement' per l’invio dei comandi SQL al database stmt = con.createStatement(); SQL_query = "SELECT * FROM tabella;"; // Invia la query SQL al database e salva il risultato in rs rs = stmt.executeQuery(SQL_query); while (rs.next()) { variabile1 = rs.getString(1); variabile2 = rs.getString(2); variabile3 = rs.getString(3); } //output System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3); // chiude la connessione con il database con.close(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); }
![]()
www.matteosteri.it
Ma nel seguente codice dove specifico il nome del database?Originariamente inviato da tommisceddu
Questa è per una stampa su video, se invece devi stampare su carta, potresti provare invece del System.out.println(); un metodo per scriverelo su file per poi stamparlo.codice:try { // Carica i driver JDBC per MySQL Class.forName("com.mysql.jdbc.Driver"); // Apre la connessione con il database con = DriverManager.getConnection(url, usr, psw); // crea uno 'statement' per l’invio dei comandi SQL al database stmt = con.createStatement(); SQL_query = "SELECT * FROM tabella;"; // Invia la query SQL al database e salva il risultato in rs rs = stmt.executeQuery(SQL_query); while (rs.next()) { variabile1 = rs.getString(1); variabile2 = rs.getString(2); variabile3 = rs.getString(3); } //output System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3); // chiude la connessione con il database con.close(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); }
![]()
Tra l'altro ho provato a compilare il codice senza cambiargli una virgola e mi da una marea di errori
P.S: Visto che ci siamo qualcuno conosce una mini guida che spiega per benino come interfacciare il mysql con il java?![]()
beh è normale che ti da degli errori le variabili url, usr e psw non le hai dichiarate e ne inizializzate.
prova aggiungendo:cosi dovrebbe funzionare a meno che non ti sei dimenticato di copiare i driver di mysql nella directory della jdk ...jre\lib\extcodice:url = "localhost/nome_data_base"; usr = "user per accedere al server"; psw = "password per accedere al server"
e allora in quel caso ti da un NoClassFoundException perchè non li trova.
comunque è consigliatissima una guida, la documentazione di MYSQL e la documentazione di JAVA![]()
www.matteosteri.it
Ovviamente non sono uno sprovveduto, le avevo settate le variabili e il mysql lo conosco abbondantemente.Originariamente inviato da tommisceddu
beh è normale che ti da degli errori le variabili url, usr e psw non le hai dichiarate e ne inizializzate.
prova aggiungendo:cosi dovrebbe funzionare a meno che non ti sei dimenticato di copiare i driver di mysql nella directory della jdk ...jre\lib\extcodice:url = "localhost/nome_data_base"; usr = "user per accedere al server"; psw = "password per accedere al server"
e allora in quel caso ti da un NoClassFoundException perchè non li trova.
comunque è consigliatissima una guida, la documentazione di MYSQL e la documentazione di JAVA![]()
In ogni caso non conoscendo l'uso del comando try (non saprei nemmeno come salvare) ho modificato il tutto con una semplice classe:
Però al momento di compilare mi da una marea di errori:codice:public class db { // Carica i driver JDBC per MySQL Class.forName("com.mysql.jdbc.Driver"); String url = "localhost/db"; String usr = "root"; String psw = "password"; // Apre la connessione con il database con = DriverManager.getConnection(url, usr, psw); // crea uno 'statement' per l’invio dei comandi SQL al database stmt = con.createStatement(); SQL_query = "SELECT * FROM tabella;"; // Invia la query SQL al database e salva il risultato in rs rs = stmt.executeQuery(SQL_query); while (rs.next()) { variabile1 = rs.getString(1); variabile2 = rs.getString(2); variabile3 = rs.getString(3); } //output System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3); // chiude la connessione con il database con.close(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } }
--------------------Configuration: j2sdk1.4.2_04 <Default>--------------------
C:\java\Sql\db.java:4: <identifier> expected
Class.forName("com.mysql.jdbc.Driver");
^
C:\java\Sql\db.java:11: <identifier> expected
con = DriverManager.getConnection(url, usr, psw);
^
C:\java\Sql\db.java:14: <identifier> expected
stmt = con.createStatement();
^
C:\java\Sql\db.java:16: <identifier> expected
SQL_query = "SELECT * FROM tabella;";
^
C:\java\Sql\db.java:19: <identifier> expected
rs = stmt.executeQuery(SQL_query);
^
C:\java\Sql\db.java:21: illegal start of type
while (rs.next())
^
C:\java\Sql\db.java:29: <identifier> expected
System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
^
C:\java\Sql\db.java:32: <identifier> expected
con.close();
^
C:\java\Sql\db.java:34: 'class' or 'interface' expected
catch (ClassNotFoundException ex)
^
C:\java\Sql\db.java:42: 'class' or 'interface' expected
}
^
C:\java\Sql\db.java:43: 'class' or 'interface' expected
^
11 errors
Process completed.
Sicuramente è qualcosa riguardo a quel comando Try, ma se lo includo in una classe mi da errore, se lo cancello e metto il codice come se fosse una classe mi da comunque errore. Quindi se puoi spiegarmi qualcosa a riguardo o come ho già detto potresti segnalarmi una buona guida in internet che spieghi per bene l'interfacciamento java <=> mysql te ne sarei grato.
Magari tramite DriverManager mi è più facile colllegarmi ad un database? che dite? il fatto è che anche questo non lo so usare![]()
Il problema non stà nell'usare o non usare DriverManager... il problema è che hai creato una classe senza nessun metodo... tutte quelle istruzioni che hai scritto nella classe db, andrebbero inserite in un metodo
Ciao.codice:public class db { public void metodo() { ... } }![]()
"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
Giusto scusa ma sono un pò con la testa nel pallone![]()
Comunque non so perchè ma continua a non funzionare anche con l'impostazione del metodo:
db.java:
Mi da ancora una sfilza di errori, propio tra l'altro sulla connessione al db, sulle query:codice:public class db { public static void main(String[] args) throws Exception{ // Carica i driver JDBC per MySQL Class.forName("com.mysql.jdbc.Driver"); String url = "localhost/db"; String usr = "root"; String psw = "password"; // Apre la connessione con il database con = DriverManager.getConnection(url, usr, psw); // crea uno 'statement' per l’invio dei comandi SQL al database stmt = con.createStatement(); SQL_query = "SELECT * FROM tabella;"; // Invia la query SQL al database e salva il risultato in rs rs = stmt.executeQuery(SQL_query); while (rs.next()) { variabile1 = rs.getString(1); variabile2 = rs.getString(2); variabile3 = rs.getString(3); } //output System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3); // chiude la connessione con il database con.close(); } }
--------------------Configuration: j2sdk1.4.2_04 <Default>--------------------
C:\java\Sql\db.java:12: cannot resolve symbol
symbol : variable con
location: class db
con = DriverManager.getConnection(url, usr, psw);
^
C:\java\Sql\db.java:12: cannot resolve symbol
symbol : variable DriverManager
location: class db
con = DriverManager.getConnection(url, usr, psw);
^
C:\java\Sql\db.java:15: cannot resolve symbol
symbol : variable stmt
location: class db
stmt = con.createStatement();
^
C:\java\Sql\db.java:15: cannot resolve symbol
symbol : variable con
location: class db
stmt = con.createStatement();
^
C:\java\Sql\db.java:17: cannot resolve symbol
symbol : variable SQL_query
location: class db
SQL_query = "SELECT * FROM tabella;";
^
C:\java\Sql\db.java:20: cannot resolve symbol
symbol : variable rs
location: class db
rs = stmt.executeQuery(SQL_query);
^
C:\java\Sql\db.java:20: cannot resolve symbol
symbol : variable SQL_query
location: class db
rs = stmt.executeQuery(SQL_query);
^
C:\java\Sql\db.java:20: cannot resolve symbol
symbol : variable stmt
location: class db
rs = stmt.executeQuery(SQL_query);
^
C:\java\Sql\db.java:22: cannot resolve symbol
symbol : variable rs
location: class db
while (rs.next())
^
C:\java\Sql\db.java:24: cannot resolve symbol
symbol : variable variabile1
location: class db
variabile1 = rs.getString(1);
^
C:\java\Sql\db.java:24: cannot resolve symbol
symbol : variable rs
location: class db
variabile1 = rs.getString(1);
^
C:\java\Sql\db.java:25: cannot resolve symbol
symbol : variable variabile2
location: class db
variabile2 = rs.getString(2);
^
C:\java\Sql\db.java:25: cannot resolve symbol
symbol : variable rs
location: class db
variabile2 = rs.getString(2);
^
C:\java\Sql\db.java:26: cannot resolve symbol
symbol : variable variabile3
location: class db
variabile3 = rs.getString(3);
^
C:\java\Sql\db.java:26: cannot resolve symbol
symbol : variable rs
location: class db
variabile3 = rs.getString(3);
^
C:\java\Sql\db.java:30: cannot resolve symbol
symbol : variable variabile1
location: class db
System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
^
C:\java\Sql\db.java:30: cannot resolve symbol
symbol : variable variabile2
location: class db
System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
^
C:\java\Sql\db.java:30: cannot resolve symbol
symbol : variable variabile3
location: class db
System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
^
C:\java\Sql\db.java:33: cannot resolve symbol
symbol : variable con
location: class db
con.close();
^
19 errors
Process completed.
Se per caso vuoi/puoi possiamo contattarci o su Icq o su Messenger cosi mi chiarisci meglio le idee![]()
In ogni caso da niubbo quale sono mi sono limitato ad eseguire il più fedelmente possibili le tue istruzioni:
-come dicevi tu stesso in un altro thread ho scaricato il file mysql-connector-java-3.0.15-ga.zip e l'ho installato nella dovuta directory;
-Il codice che hai scritto in questo thread l'ho ricopiato nel main;
-ho ovviamente compilato le variabili tipo user, password ecc;
Però non va![]()
Ho creato con l'aiuto di alcune guide online un piccolo codice per la connessione che mi compila per bene:
Questa volta però non mi becca invece i Driver. Eppure ho messo il tutto nella cartella giusta.. magari se qualcuno mi spiega per benino come si setta il claspath..codice:import java.sql.*; public class odbc { public static void main(String[] args) throws Exception{ // Carica i driver JDBC per MySQL Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection ("jdbc:odbc:miodb", "login", "password"); Statement st = conn.createStatement(); //inizio a trattare i dati ResultSet rs = st.executeQuery("SELECT col1, col2 FROM table1"); while(rs.next()) { String a = rs.getString("col1"); int b = rs.getInt("col2"); } conn.close(); } }