Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Stefy
    Registrato dal
    Jul 2005
    Messaggi
    18

    [java]Risultato riga vuota di query sql

    Salve!
    Nella mia applicazione in java ho creato un metodo User findByEmail(String mail) che cerca in tabella e restituisce il record con l'email specificata come parametro.
    Io vorrei fare delle altre query in db nel caso in cui il findByEmail desse come risultato un record vuoto, o meglio null ma non so come specificarlo.
    Nel main di prova ho scritto questo:

    codice:
    UserDAO userDAO= new UserDAO();
    System.out.println(userDAO.findByEmail("stefania@ciao.it") );
    In console compaiono i campi nulli del record trovato:
    Id : 0
    nome : null
    cognome : null
    email : null


    Però io vorrei fare una cosa di questo tipo, ma non funziona ( inserire il record se non ne esiste già un altro con lo stesso campo email):

    codice:
    UserTO userTO = new UserTO();
    UserDAO userDAO= new UserDAO();
    if(userDAO.findByEmail("stefania@ciao.it").equals(null) ){
      userTO.setNome("nome");
      userTO.setCognome("cognome");
      userTO.setEmail("stefania@ciao.it");
      userDAO.create(userTO);
    }
    Come potrei fare? Grazie in anticipo

  2. #2
    Bisogna vedere cosa ritorna il metodo findByEmail quando non ci sono corrispondenze. Ritorna null oppure un oggetto UserTO con i valori interni settati a null? Le due cose sono diverse. Dalla stampa in console che hai scritto sembra che si verifichi il secondo caso. Ad ogni modo in entrambi i casi il confronto che tu fai è errato. Se il metodo ritorna null, il confronto va eseguito così:

    Codice PHP:
    UserTO userTO = new UserTO();
    UserDAO userDAO= new UserDAO();
    if(
    userDAO.findByEmail("stefania@ciao.it") == null ){
      
    userTO.setNome("nome");
      
    userTO.setCognome("cognome");
      
    userTO.setEmail("stefania@ciao.it");
      
    userDAO.create(userTO);

    Se invece ritorna un oggetto UserTO con i valori "interni" nulli allora devi confrontare ogni singolo campo:

    Codice PHP:
    UserTO userTO = new UserTO();
    UserDAO userDAO= new UserDAO();
    UserTO searchUserResult userDAO.findByEmail("stefania@ciao.it");
    if(
    searchUserResult.getNome()==null 
              
    && searchUserResult.getCognome()==null
              
    && searchUserResult.getEmail()==null
              
    && searchUserResult.getId()==0){
      
    userTO.setNome("nome");
      
    userTO.setCognome("cognome");
      
    userTO.setEmail("stefania@ciao.it");
      
    userDAO.create(userTO);

    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di Stefy
    Registrato dal
    Jul 2005
    Messaggi
    18
    Grazie, ho risolto proprio così! Si poteva anche sovrascrivere il metodo equals() per la classe UserTO ma il risultato è identico

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 © 2025 vBulletin Solutions, Inc. All rights reserved.