indisparte ha scritto:
Ok allora, in java dovrei indicare nella query "Impiegato" compresi i doppi apici?
Se non puoi/vuoi ricreare la tabella senza la quotatura del nome, sì:
String query = "select * from \"Impiegato\" where Nome=?";
Se nella create table
anche le colonne sono state quotate ... idem.
Altrimenti ricrei la tabella senza le quotature (dovresti comunque scrivere e tenerti un file SQL di "setup" della base dati).
indisparte ha scritto:
Riguardo poi il tuo EDIT, cosa faccio, rimuovo gli indici o indico nella query cosa selezionare?
C'è una questione di fondo che forse non ti è (ancora) chiara: se fai select *, l'ordine in cui ti arrivano le colonne dipende dall'ordine FISICO con cui sono state definite le colonne. Ora, magari non è la tua situazione molto semplificata ma in contesti molto più "ampi" è tipico avere diversi ambienti, es. "dev", "test" "produzione" (e magari altro in mezzo). Magari uno sviluppatore ad un certo momento vuole aggiungere una colonna X in una tabella e nell'ambiente "dev" può sicuramente benissimo ricreare tutta la tabella per inserire la colonna X all'inizio o in mezzo come gradisce. Ma in un ambiente di "produzione" NON ricrea di certo tutta la tabella, fa sicuramente un
alter table per aggiungere la colonna (che finisce al fondo).
L'ordine fisico quindi
potrebbe variare tra i vari ambienti. Questo non dovrebbe generalmente inficiare sulle query, se fatte appropriatamente.
Se fai select * dipendi da quell'ordine e se prendi le colonne per indice .... è il modo per piantare macelli in situazioni come quella descritta di più ambienti.
Pertanto, se fai select * dovresti prendere le colonne per nome es. result.getString("Nome")
Altrimenti specifichi esattamente le colonne che vuoi:
select nome, xyz, zyx, .... from ....
E allora PUOI usare gli indici perché hai imposto tu un ordine ben preciso.