RISOLTO Estrarre il nome della tabella da una query

Stato
Discussione chiusa ad ulteriori risposte.

Scripta14

Nuovo Utente
95
8
Buonasera a tutti,

una domanda, presumo semplice, ma non riesco a trovare una soluzione. Avrei la necessità di ottenere il nome della tabella che ho utilizzato per fare una specifica query, ma non trovo il modo per estrarre il nome della tabella.
Riporto il codice per maggiore chiarezza su ciò che vorrei fare:
Codice:
public static void viewTableStatement(Connection conn) {
        Statement stmt=null;
        String query="SELECT MATRICOLA, COGNOME, NOME "
                     +"FROM IMPIEGATO WHERE LIVELLO= '4' ";
        
        try {
            stmt=conn.createStatement();
            ResultSet rs=stmt.executeQuery(query);
            while(rs.next()) {
                String id=rs.getNString("MATRICOLA");
                String cognome=rs.getString("COGNOME");
                String nome=rs.getString("NOME");
                System.out.println(id +" \t "+ cognome +" \t "+ nome );
                System.out.println("\n***************************");
            
            }
           
             
        } catch (SQLException e) {

         System.out.println("esecuzione vietata "+e.getErrorCode()+ " "+e.getMessage());
         
        }


    }
Se per favore qualcuno ha qualche idea, perché io non saprei come gestirla. Ho provato con l'interfaccia ResultSetMetaData e DatabaseMetaData, ma senza ottenere quello che cercavo.
Grazie a tutti in anticipo per l'aiuto.
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,900
11,551
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Non capisco il senso della domanda: in nome della tabella è scritto nella query e si chiama IMPIEGATO;
altriment, se tu non consocessi il nome della tabella, come faresti ad estrarne i campi?
 
  • Mi piace
Reazioni: 1nd33d

Scripta14

Nuovo Utente
95
8
Non capisco il senso della domanda: in nome della tabella è scritto nella query e si chiama IMPIEGATO;
altriment, se tu non consocessi il nome della tabella, come faresti ad estrarne i campi?
Innanzitutto grazie per la risposta. Hai ragione sul non senso della mia richiesta, ma ho semplificato una situazione più articolata. La stringa della query viene passata ad un metodo di un'altra classe che conterrà uno Statement, che leggerà la mia stringa eseguendo la query. Qualora avessi una qualsiasi exceptions, nel caso specifico una SQLException, verrà richiamato un altro metodo di un'altra classe, al quale verranno passati come parametri il codice di errore, la descrizione e la tabella della query passata, in modo da poter fare l'update dell'informazione. Quindi, se un unico soggetto a gestire queste classi\metodi, è a conoscenza dei nomi delle tabelle sulle quali fare l'update, mentre se sono più soggetti che gestiscono le classi e i metodi, riceveranno unicamente il parametro. Quindi, se riesco in qualche modo ad estrarre dalla query, passata ad uno Statement, il nome della tabella che ho usato nella Select, avrei risolto il mio problema.
Spero di aver fornito maggiori informazioni e spero che qualcuno mi possa dare un consiglio o qualche idea.
Grazie per l'aiuto.

Inviato da WAS-LX1A tramite App ufficiale di Tom\'s Hardware Italia Forum
 

JayX

Utente Attivo
285
102
Potresti provare a inserire il nome tabella nella query attraverso una variabile, in modo da avere un parametro contenente il nome della tabella ed in caso di errore riuscire a recuperarlo.

String query="SELECT MATRICOLA, COGNOME, NOME "
+"FROM"+ NomeTabella +"WHERE LIVELLO= '4' ";
 

Andretti60

Utente Èlite
6,440
5,091
Altra semplice soluzione: estrai le singole parole dalla stringa che contiene la query, il nome della tabella e' la parola seguente alla prima parola "FROM" (ricorda di fare il confronte ignorando minuscole/maiuscole). Esistono vari metodi per farlo.
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!