Salve sto realizzando un software java che permette
di interrogare un database MySQL. Utilizzo i driver ODBC
Ho provato una query del tipo SELECT * FROM Tabella e funziona perfettamente
Se provo una query come SELECT * FROM Tabella WHERE Codice='34' non funziona
Anche SELECT Codice, Titolo FROM Tabella WHERE Codice='34' nn funziona
Per realizzare le ultime due query, utilizzo statement precompilati. Questo è il codice:
(il metodo DB_Connection restituisce un oggetto Connection)
public void QueryLibro(){
int cod=34;
//System.out.println("QueryLibro per Codice su: " + this.getSourceDB());
try{
PreparedStatement pst=this.DB_Connection().prepareStatement("SELECT *" + "FROM libri" + "WHERE libri.Codice='?'");
pst.setInt(1,cod);
System.out.println("DEBUG");
ResultSet rts=pst.executeQuery();
System.out.println("DEBUG");
System.out.println("CodiceLibro" + "\t" + "Categoria" + "\t" + "Titolo");
rts.first();
while(rts.next()){
System.out.println(rts.getString(1) + "\t" + rts.getString(2) + "\t" + rts.getString(3));
}
pst.close();
}
catch(SQLException SQLEx){
//SQLEx=new SQLException("Errore SQL...");
System.err.println(SQLEx.getMessage());
System.exit(1);
}
}
dice che c'è errore di null pointer exception e mi segnala la riga rts.setInt(1,cod), ma non capisco cosa possa essere.
c'è qualche errore di concetto nel codice???
Non penso che l'errore derivi dall'oggetto Connection riportato dal metodo BD_Connection perchè non dovrebbe funzionare nulla. E non è così, perchè ho provato query generiche senza where, insert delete e update con relativi where(queste con statement precompilati)