View Full Version : probblema java query
public boolean esisteUtente(String nomeUtente){
try {
Statement s = this.db.createStatement();
s.executeQuery("SELECT nome FROM utenti");
ResultSet rs = s.getResultSet();
int count = 0;
while (rs.next()) {
String name = rs.getString("nome");
//System.out.println("name:" + name);
if(name.equals(nomeUtente)){
return true;//Il nome esiste già
}else{
return false;//Il nome nn è presente nel db
}
}
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return false;
}
in pratica e un metodo che mi dovrebbe dire se esiste un utente o no, e mi restituisce false anche se inserisci due volte lo stesso nome
es lista nomi inseriti
compile:
OK! sei Connesso
name:g
false
D:1 riga inserita
g
gigi
prova3
prova3
prova3
debug:
vedete ho inserito g la prima volta e la fatto la seconda ma detto NO ma poi con prova 3 nn mi va piÙ
?_?:help:
Coiauu
isAlreadyInUse
19-11-2007, 10:02
public boolean esisteUtente(String nomeCliente) {
boolean returnValue=false;
try {
Statement s = this.db.createStatement();
s.executeQuery("SELECT NOME FROM UTENTI WHERE UCASE(NOME)=UCASE(" + nomeCliente + ")");
ResultSet rs = s.getResultSet();
int count = 0;
if (rs.next()) {
returnValue=true;
}
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return returnValue;
}
public boolean esisteUtente(String nomeCliente) {
boolean returnValue=false;
try {
Statement s = this.db.createStatement();
s.executeQuery("SELECT NOME FROM UTENTI WHERE UCASE(NOME)=UCASE(" + nomeCliente + ")");
ResultSet rs = s.getResultSet();
int count = 0;
if (rs.next()) {
returnValue=true;
}
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return returnValue;
}
nn funziona ! macosa fà quel UCASE?? cmq mi appoggio su mysql ..
isAlreadyInUse
19-11-2007, 10:14
Quella è una funzione di mySQL
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_ucase
comunque la mia è solo un attimino piu ottimizzata, la tua se metti il return alla fine funziona comunque. pero mi sembra inutile scorrere tutto il resultset quando puoi fare tutto in un colpo solo. cerca di far funzionare la select che ti ho datao...io nn l'ho porvata, ma la funzione esiste.
Prova e fammi sapere.
mm ho provato con query browser e la query funziona, il tuo ragionamento lo capito ma nn riesco a capire xchem mi inserisce i dati ugualmente...
errore
OK! sei Connesso
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'gigi' in 'where clause'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1027)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3378)
false
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3310)
D:1 riga inserita
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1853)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1976)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2497)
gigi
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2426)
gigi
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
gigi
at progetto.Connessione.esisteUtente(Connessione.java:134)
gigi
at progetto.Connessione.addCliente(Connessione.java:149)
gigi
at progetto.Main.main(Main.java:37)
debug:
BUILD SUCCESSFUL (total time: 4 seconds)
isAlreadyInUse
19-11-2007, 10:27
s.executeQuery("SELECT NOME FROM UTENTI WHERE UCASE(NOME)=UCASE('" + nomeCliente + "')");
s.executeQuery("SELECT NOME FROM UTENTI WHERE UCASE(NOME)=UCASE('" + nomeCliente + "')");
non vaa....:muro: :help:
scherzo scherzo funziona :D
era un errore di sintasi :D nel nome della tabella :D
MIllllleeThxx ;)
isAlreadyInUse
19-11-2007, 10:37
Adesso ti deve funzionare
public boolean esisteUtente(String nomeCliente) {
boolean returnValue=false;
try {
PreparedStatement s = this.db.prepareStatement("SELECT NOME FROM UTENTI WHERE UCASE(NOME)=?");
s.setString(1, nomeCliente.toUpperCase());
ResultSet rs =s.executeQuery();
if (rs.next()) {
returnValue=true;
}
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return returnValue;
}
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.