PROBLEMA [Java]Relazione presente ma non trovata nel db

indisparte

Nuovo Utente
45
3
Voglio recuperare un impiegato dal db(postgreSQL) cercandone il nome, il codice da me scritto è:
Codice:
public class ImpiegatoDAO extends Impiegato {
private Connection con;
    
    
    public ImpiegatoDAO(Connection c) {
        con = c;
    }
    
    public void RicercaImpiegatobyNome(String nome) {
        ArrayList<Impiegato> af = getImpiegatoByNome(nome);
        if(af.isEmpty())
            System.out.println("Impiegato non trovato");
        else
            for(Impiegato f: af) {
                System.out.println(f.toString());
            }
    }
public ArrayList<Impiegato> getImpiegatoByNome(String nome) {
        
        ResultSet result;
        Impiegato I;
        ArrayList<Impiegato> ai = new ArrayList<Impiegato>();
        
        String query = "select * from impiegato where Nome=?";
        
        try {
            PreparedStatement pst = con.prepareStatement(query);
            pst.setString(1,nome);
            result = pst.executeQuery();
            
                while(result.next()) {
                    I = new Impiegato();
                    I.setNome(result.getString(1));
                    I.setCognome(result.getString(2));
                    I.setDataNascita(result.getString(3));
                    I.setDataAssunzione(result.getString(4));
                    I.setStipendio(result.getDouble(5));
                    I.setCf(result.getString(6));
                    I.setIdOperatore(result.getString(7));
                    I.setEmail(result.getString(8));
                    I.setCell(result.getString(9));
                    I.setSesso(result.getString(10));
                    I.setPsw(result.getString(11));
                    ai.add(I);
                }
                return ai;
            
        } catch (SQLException e) {e.printStackTrace();return null;}
    }
Lanciando dalla classe main questo metodo a cui viene passato il nome, mi viene detto che la relazione impiegato all'interno del database non esiste!!(esiste invece)
Allora siccome postgresql mi fa specificare una relazione in questo modo:
"Negoziodiabbigliamento"."Impiegato" dove la prima parte è il nome dello schema e la seconda parte è il nome della relazione allora ho pensato "Ora ci aggiungo tutta questa definizione nella query", NADA!!!!
Cercando su internet ho trovato che i doppi apici indicano il casesensitive ma, posso aggiungere questo casesensitive nella specifica della query in java?? posso rimuovere questi doppi apici da postgresql? Sto impazzendo perchè è il mio primo programma che interagisce con un db e la connessione va a buon fine , sono ad un passo dalla vittoria
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,543
12,932
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Fai un test, prima di
Java:
pst.setString(1,nome);
Dagli un
Java:
System.out.println(name);
Così da esser sicuro che sia corretto il nome.
Solitamente quando metti = nel where è già di suo case insensitive. Per il case sensitivi si usa il LIKE ( in MySQL, in postgreSQL non saprei )
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!