Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2017
    Messaggi
    7

    Modificare il campo nella SELECT

    Salve a tutti,
    Ho un database (al momento costituito da una sola tabella) al quale ho dovuto accedere mediante java per eseguire delle query, quello che voglio fare (se è possibile) è quanto segue: in input inserisco i nomi delle colonne che voglio visualizzare, successivamente la Select contenuta in questa espressione: ResultSet myRs=myStmt.executeQuery("select * from persone") dovrà essere costituita dai soli nomi delle colonne che io ho inserito.

    Pensavo di procedere nel seguente modo:
    Scanner nomeprimacolonna = new Scanner(System.in);
    Scanner nomesecondacolonna = new Scanner(System.in);
    System.out.println("Inserisci nome colonna:");
    String elementosinitradb = nomeprimacolonna.next();
    System.out.println("Inserisci elemento destra:");
    String elementodestradb = nomesecondacolonna .next();

    c'è un modo per inserire i risultati ottenuti dalle variabili summenzionati in questa espressione:

    ResultSet myRs=myStmt.executeQuery("select * from persone");
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Gionsno Visualizza il messaggio
    la Select contenuta in questa espressione: ResultSet myRs=myStmt.executeQuery("select * from persone") dovrà essere costituita dai soli nomi delle colonne che io ho inserito.
    Invece che avere l'espressione della select "cablata" fissa nel sorgente, la puoi comporre dinamicamente aggiungendo i nomi delle colonne (con virgole in mezzo, ovviamente) e poi accodando alla fine la clausola from.


    P.S. di Scanner connesso a System.in ne devi avere 1 solo all'interno della tua applicazione. Non due (come si vede sopra) o più.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2017
    Messaggi
    7
    Perdona l'ignoranza, ho provato a fare in questo modo:
    Scanner elemento = new Scanner(System.in);

    System.out.println("Inserisci nome colonna:");
    String primacolonna= elemento.next();
    System.out.println("Inserisci nome colonna:");
    String secondacolonna= elemento.next();


    ResultSet myRs=myStmt.executeQuery("select primacolonna,secondacolonna from persone");

    Però da errore dato che primacolonna e secondacolonna non li riconosce come nomi appartenenti alle colonne della tabella.
    Suggerimenti?
    Ultima modifica di Gionsno; 29-03-2017 a 17:39

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Sì: studiare la concatenazione tra stringhe (che vale per qualunque linguaggio).
    In particolare, per Java:

    codice:
    String variabile1 = "Ciao"
    String variabile2 = "Pippo";
    
    // Concateno due variabili e una costante letterale
    System.out.println(variabile1 + " " + variabile2);

    Più specificatamente per il tuo esempio:

    codice:
    ResultSet myRs = myStmt.executeQuery("SELECT " + primacolonna + ", " + secondacolonna + " FROM persone");

    Buttarsi a gestire database senza nemeno conoscere le basi findamentali del linguaggio può portare solo ad una conclusione: tanto, tanto, tanto tempo perso a cercare di ottenere dei risultati anche solo minimi. Il mio consiglio è quello di cominciare con qualcosa di più semplice (per approfondire i costrutti fondamentali del linguaggio) e poi, solo dopo aver preso dimestichezza col linguaggio, passare ad argomenti più complessi.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2017
    Messaggi
    7
    Grazie per il suggerimento e la dritta.
    Ne farò tesoro

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 © 2024 vBulletin Solutions, Inc. All rights reserved.