PDA

Visualizza la versione completa : Java e Query SQL[HELP]


Dorcan82
05-12-2003, 14:28
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)

comas17
05-12-2003, 17:50
Il campo codice di tipo testo o numerico ? Se numerico non devi mettere gli apici.
...where codice = 34
NON ... where codice = '34'

claudiosala80
05-12-2003, 20:38
Penso che l'errore sia dovuto a '?'. io sto realizzando un programma similie al tuo (java su mySQL) e non uso mai '?' indipendentemente dal tipo di dato.
Ma perch la stringa della query la scrivi a pezzi e non tutta intera?

Dorcan82
05-12-2003, 22:58
La query era scritta un p cos...tanto per.

Il 34 numerico il fatto che con '34' o 34 non funziona cmq. Se non ricordo male con 34 mi solleva l'eccezione.

Non capisco cosa intendi quando non usi il simbolo ?. Cmq se devi associare alla query il valore di una variabile, devi utilizzare per forza di cosa il simbolo ?.....Prendi in considerazione il fatto che non proprio 34 ma una variabile intera. Il 34 era un modo spiccio di capire dove l'errore


Avete qualche idea..???Io non capisco proprio

claudiosala80
05-12-2003, 23:55
con ? indendevo che non dovevi metterlo fra apici
nn saprei dov' il problema.
bisognerebbe avere il codice e il db per fare delle prove
ciao

Loading