PDA

Visualizza la versione completa : [JAVA] Problemi con SQL count


amancalion
25-09-2005, 12:00
Scusate se insisto, ma il count mi da dei problemi.
Ho letto una precedente discussione proprio su questo argomento e ho seguito alla lettera i suggerimenti perņ la JVM mi da una SQLException run-time.

Vi do il codice:

public int getNumeroMp3() throws SQLException {

int numero=0;

Connection conn;

conn = DriverManager.getConnection(URL, USER, PASSWD);

ResultSet rs;
Statement st = conn.createStatement();

rs=st.executeQuery("select count(*)as nummp3 from mp3");
numero=rs.getInt("nummp3");


return numero;
}

E la eccezione:

java.sql.SQLException: Before start of result set
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.jav a:3624)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java: 1762)
at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:125 5)
at lyrics.DBMS.getNumeroMp3(DBMS.java:296)
at lyrics.DBMS.main(DBMS.java:413)
Exception in thread "main"

Cosa posso fare??
grazie

PS=uso MySQL

battlehorse
25-09-2005, 13:25
Il messaggio di errore indica che il tuo ResultSet e' posizionato prima del 1° record ritornato dalla query.

Un resultSet non e' altro che un puntatore che punta ad un record tra quelli restituiti dalla query.

Appena creato non punta ad alcun record, poi puoi farlo scorrere da un record all'altro con


rs.next()


che ti ritorna un boolean a seconda che tu sia arrivato in fondo ai record o meno.

Quindi e' sufficiente correggere il programma con :


rs=st.executeQuery("select count(*)as nummp3 from mp3");
if (rs.next())
numero=rs.getInt("nummp3");

Loading