Originariamente inviato da r1si
grazie mille per la risposta ma potresti farmi un esempio di cosa stampa al query? non so come usarli questi metodi , visto che nn ho capito quando ritorna la query dal db cosa mi salva ....
Ok, però prima devo darti un consiglio:
potresti crearti una classe separata che gestisca le connessioni al Database e altre classi che dunque gestiscono le relative tabelle.
Per gestire le connessioni potresti definire una classe simile a questa:
codice:
public class ConnectionManager{
public ConnectionManager(){
}
public Connection createConnection(String host, String dbname, String user, String password){
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // istanzi il driver (questa istruzione dalla libreria mysql 5.1.15 in poi non dovrebbe essere necessaria)
connection = DriverManager.getConnection("jdbc:mysql://localhost/"
+ dbname + "?user=" + user + "&password=" + password);
} catch ( SQLException e ) {
e.printStackTrace();
}
return connection;
}
}
Controlla comunque che l'istruzione che ho commentato sia o meno necessaria per la tua versione, altrimenti in prima istanza l'errore viene generato per via della mancata istanziazione del Driver.
Tornando al ResultSet, se la tua query restituisce n tuple/record, potresti scrivere:
codice:
...
ResultSet rs = stmt.executeQuery( query );
while ( rs.next() ) {
// qui vai a leggere dal result set i campi dell'i-esimo record restituito
// utilizzando i metodi opportuni:
// cioè rispettando la mappatura dei tipi tra il DB e Java
// e li carichi in un oggetto che magari rappresenta la tabella su cui fai la query
// o in altre strutture...
}
...
Se invece sai che la tua query restituisce solo un record, allora:
codice:
...
ResultSet rs = stmt.executeQuery( query );
rs.first();
// ora puoi leggere dal result set i campi dell'unico record restituito
// e salvi il valore in una variabile/oggetto eventualmente da restituire
...