Servizio Rest query da java

di il
1 risposte

Servizio Rest query da java

Salve,
causa alcune anomalie a DB, mi ritrovo a ricostruire un filtro che non sempre funziona. Ad esempio devo filtrare per nome sito e mi arriva in input la stringa "i programmatori . it", vado a cercare e non mi torna nulla eprché a db (per chissà quale motivo) è stata inserita così "i programmatori .
it" con tutta una serie di spazi tra una parola e l'altra. Ci sono dei metodi in java per risolvere? Avevo pensato al replace() dove passo " " e sostituisco con il "" e altro replace dove passo " " e sostituisco per il like ma così ovviamente viene fuori i%programmatori%.%it% e mi prende anche quello che non dovrebbe... avete un suggerimento su come risolvere?
Grazie

1 Risposte

  • Re: Servizio Rest query da java

    Test90 ha scritto:


    non mi torna nulla eprché a db (per chissà quale motivo) è stata inserita così "i programmatori .
    it" con tutta una serie di spazi tra una parola e l'altra.
    Allora: una prima questione sarebbe magari quella di "bonificare" i dati già presenti su DB. Un'altra questione potrebbe essere quella di correggere la parte di inserimento in modo che eventualmente "normalizzi" la stringa riguardo spazi, newline ecc... prima di fare la INSERT.

    Se tu passi ad una query es. ".... WHERE colonna = ?" (ho messo ? nel senso del PreparedStatement per dare l'idea) una stringa di input come hai detto, è ovvio che NON trova la stringa su db che ha spaziature differenti!
    Se la questione va risolta a livello di WHERE, allora devi possibilmente normalizzare il valore del campo già lì. Magari con una tua function SQL, in modo che risulti es.

    WHERE normalizza(colonna) = ?

    Quindi in sostanza: devi valutare a quale LIVELLO fare una sorta di normalizzazione.
Devi accedere o registrarti per scrivere nel forum
1 risposte