Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [javabean + sql] ricerca

    Salve,
    devo fare un metodo ricerca!
    Al metodo vengono passati delle stringhe ricerca(titolo,autore,editore) devo effettuare una ricerca per titolo o per autore o per editore oppure per più elementi! come devo fare?

    codice:
    String SQL = "SELECT titolo,autore,editore,anno_publicazione FROM Libro WHERE titolo = '" + titolo + "' or autore = '" + autore + "'or editore = '" + editore + "';
    la stringa sql che ho sviluppato non è completamente giusta perchè se passo un titolo giusto e l'autore sbagliato mi restituisce una stringa quando invece dovrebbe darmi errore!

    Grazie per l'aiuto spero di essere stato chiaro!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    devi usare AND non OR, altrimenti dici che ti va bene qualsiasi risultato in cui almeno uno dei vari campi su cui fai la ricerca trovi riscontro.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Andrea1979
    devi usare AND non OR, altrimenti dici che ti va bene qualsiasi risultato in cui almeno uno dei vari campi su cui fai la ricerca trovi riscontro.
    se uso and non funziona! perchè se metto il titolo e gli altri li lascio vuoti non va perchè verifica il campo autore e editore con null dove il titolo è il valore che ho passato!

  4. #4
    Originariamente inviato da Uccio87
    se uso and non funziona! perchè se metto il titolo e gli altri li lascio vuoti non va perchè verifica il campo autore e editore con null dove il titolo è il valore che ho passato!
    Ti conviene comporre la query in base ai dati non nulli di cui disponi in un determinato stato.

    Ad esempio, se l'unico dato non nullo è il titolo, allora basi la selezione solo su quel parametro.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da VincenzoTheBest
    Ti conviene comporre la query in base ai dati non nulli di cui disponi in un determinato stato.

    Ad esempio, se l'unico dato non nullo è il titolo, allora basi la selezione solo su quel parametro.
    ovviamente devi anche fare il controllo dei dati che passi, come suggerito da Vincenzo
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da VincenzoTheBest
    Ti conviene comporre la query in base ai dati non nulli di cui disponi in un determinato stato.

    Ad esempio, se l'unico dato non nullo è il titolo, allora basi la selezione solo su quel parametro.
    come faccio a basare la selezione solo sul parametro non nullo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    ho provato così ma non funziona:
    codice:
      public String cerca_libro_titolo(String titolo, String autore, String editore) {
            String ris="";
            try {
                String SQL="";
                Class.forName("xxx");
                String url = "xxx";
                String usr = "xxx";
                String pass = "xxx";
                Connection con = (Connection) DriverManager.getConnection(url, usr, pass);
                Statement statement = (Statement) con.createStatement();
                if(titolo!=null){
                    SQL = "SELECT titolo,autore,editore FROM Libro WHERE titolo = '" + titolo + "'";}
                else if (autore != null) {
                    SQL="SELECT titolo,autore,editore FROM Libro WHERE autore = '" + autore + "'";}
                else if (editore != null) {
                    SQL="SELECT titolo,autore,editore FROM Libro WHERE editore = '" + editore + "'";}
    
                ResultSet risultato = statement.executeQuery(SQL);
                while (risultato.next()) {
                    ris=ris + risultato.getString(1) + " " + risultato.getString(2)+ " " + risultato.getString(3);
                }
                con.close();
                statement.close();
                risultato.close();
    
    
            } catch (Exception exception) {
                System.out.println("erroreeeeeeeee " + exception.getMessage());
            }
            return ris;
        }
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    39
    la condizione where secondo me dovrebbe riscontrare tutti i casi (se ho capito il problema!)
    ovvero se si cerca :
    1)titolo
    2)autore
    3)editore
    4)titolo editore
    5)titolo autore
    6)autore editore

    il tuo problema e' che il primo if e' quello che vede se il titolo e' != null, ma titolo e' tale anche nel caso 4 e 5 quindi gli if sarebbero piu articolati!
    se non ho capito il problema allora dammi qualche indicazione in piu che cerco di capire ed aiutarti

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Ramboz89
    la condizione where secondo me dovrebbe riscontrare tutti i casi (se ho capito il problema!)
    ovvero se si cerca :
    1)titolo
    2)autore
    3)editore
    4)titolo editore
    5)titolo autore
    6)autore editore

    il tuo problema e' che il primo if e' quello che vede se il titolo e' != null, ma titolo e' tale anche nel caso 4 e 5 quindi gli if sarebbero piu articolati!
    se non ho capito il problema allora dammi qualche indicazione in piu che cerco di capire ed aiutarti
    se inserisco solo il titolo deve farmi una ricerca per il titolo se inserisco titolo e autore mi deve fare una ricerca per titolo e autore!!!! credo tu abbia capito bene il mio problema!!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    39
    codice:
    if(titolo!=null && autore == null && editore == null){
                    SQL = "SELECT titolo,autore,editore FROM Libro WHERE titolo = '" + titolo + "'";}
    questo per esempio potrebbe essere il caso in cui inserisci solo il titolo!
    ovviamente lo stesso dovrai fare negli altri casi che ti ho elencato prima

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.