Il mio suggerimento di usare printStackTrace() non era solo per tua comodità... ma anche per fornire a noi il trace generato e capire quale possa essere la causa.
Non avevi specificato che il messaggio era "stato del cursore non valido".. già questo ci dice qualcosa di più.
Ad ogni modo, guardando il tuo codice ho appena notato una cosa: tu esegui la query ed ottieni il ResultSet... e questo va bene.
Il problema è che cerchi immediatamente di prendere il valore del campo "nome" senza esserti prima posizionato sul primo record del resultset.
Quando ottieni un ResultSet, esso è posizionato prima del primo record.
Devi eseguire almeno una "next()" per posizionarti sul primo record.
E, ovviamente, dovrai controllare che la next() non restituisca "false", che vuol dire che il ResultSet è vuoto.
Ciao.codice:ResultSet rs = st.executeQuery("select * from persone where nome = 'xxxxx'"); if ( rs.next() ) { Persona p = new Persona(); p.setNome(rs.getString("nome")); ... }![]()



Rispondi quotando