Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    12

    [Java/sql]Confronto stringhe

    Ciao a tutti,ho costruito un form di login in java che chiede il nome utente per collegarsi ad un database.
    Per controllare che effettivamente l'utente sia presente nel database degli utenti autorizzati utilizzo il metodo equlas ma nonostante le due stringhe sia uguali il confronto fallisce..

    "codice"

    ResultSet rs = stmt.executeQuery("SELECT Cognome FROM Docenti");
    if( cognome.equals(rs.getString("Cognome")) )
    ...

    "codice*

    La variabile cognome contiene il nome utente inserito nel form di login.
    Cosa sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    il controllo tra stringhe va fatto con il compareTo, quindi:

    if(cognome.compareTo(rs.getString("Cognome"))==0 ).....

    guardati la documentazione per chiarimenti

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    no, anche equals va bene... sorge il dubbio che il dato recuperato dal database e quello inserito non siano, effettivamente uguali. In particolare, prova a fare un System.out.print di entrambe e vedi che trovi.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    12
    Infatti^^
    Ho provato a stampare a video sia la variabile cognome che il dato prelevato dal database e sono uguali. :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    12
    MM non è che le i dati prelevati da un Db(nel mio caso su Oracle 10)vengono "incapsulati" in una stringa java con qualche carattere extra?

  6. #6
    Originariamente inviato da Mow
    MM non è che le i dati prelevati da un Db(nel mio caso su Oracle 10)vengono "incapsulati" in una stringa java con qualche carattere extra?
    Prova anche a fare un trim (c'è un metodo apposito della class String) su entrambe le stringhe perchè magari c'è qualche spazio aggiunto inavvertitamente di cui con una stampa su consolle non ti accorgi.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    12
    Si infatti ho risolto grazie al metodo trim()..Grazie a tutti

  8. #8
    Utente di HTML.it L'avatar di cutoff
    Registrato dal
    Jan 2006
    Messaggi
    22
    Io proverei con :

    if( cognome.equalsIgnoreCase (rs.getString("Cognome")) )
    ......


    Nicola

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.