Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    prendere risultato query

    Ciao a tutti,
    io sto imparando java ora quindi la mia domanda vi risulterà molto stupida. Dopo aver fatto una query ad un DB devo prendere i risultati che sono un insieme di nome, li devo mettere in un array in quanto devo scorrere l'array prendendo un valore per volta. Qualcuno può dirmi come potrei fare?

    Grazie mille

  2. #2
    non credo che l'array ti serva...
    perchè scorrere 2 volte cose simili quando puoi fare tutto in una volta?
    allora per prendere il risultato della query:

    codice:
    //supponiamo che l'array che ti serve si chiama arr
    String query="select nome from tabella;";
    Statement statement=connection.createStatement();
    ResultSet rs=statement.executeQuery(query);
    
    int i = 0;
    while (rs.next())
    {
       arr[i++]=rs.getString(1);
       //oppure se vuoi evitarti il ciclo successivo puoi fare
       //-------------------------------------------------
       String tmp=rs.getString(1);
       //tue operazioni
    }
    
    // poi le tue operazioni
    for (int j=0 ; j<arr.lenght ; j++)
    {
    String tmp=arr[j];
    //tue operazioni
    }
    con il metodo getString(int column) ti prendi il valore della colonna....
    ad esempio in una query select nome, cognome, codicefiscale from persona
    quando prendi i valori, nome sarà la colonna 1, cognome la 2, codicefiscale la 3,
    oppure quando fai select * l'ordine sarà quello in cui sono memorizzati i campi nel database...


  3. #3
    ciao stex1984,
    ho provato a fare come mi hai detto ma mi da unamerea di errori. Provo a mandarti il mio codice forse riesci a trovare dove ho fatto il casino

    public static void main(String[] args) {


    // daoFactory = DAOFactory.getDAOFactory();

    String query = "SELECT distinct nome FROM azienda;";

    String arr[] =new String[10000];

    //metto ogni nome in una posizione dell'array
    Statement statement=connection.createStatement();
    ResultSet rs=statement.executeQuery(query);

    int i = 0;
    while (rs.next())
    {
    arr[i++] = rs.getString(1);
    }


    for (int j=0 ; j<arr.lenght ; j++){
    String nome =arr[j];
    String nome_m= arr[j];
    nome_m = ((nome_m).replace("'","''"));

    //trasformo il nome mettendo la prima lettera grande
    char [] testo = new char[len];
    char [] testo_new = new char[len];
    char sup;

    testo = nome_m.toCharArray();
    sup = testo[0];
    testo_new[0]= toUpperCase(sup);

    for(int m=1;m<len;m++){
    sup= testo[m];
    if (testo[m-1] == ' ' || testo[m-1] == '\'' || testo[m-1]== '-'){
    //metto il carattere grande
    testo_new[m] = toUpperCase(sup);
    }
    //metto il carattere piccolo
    else testo_new [m] = toLowerCase(sup);
    }
    nome_m= new String (testo_new);

    ResultSet rt = select("SELECT istat FROM comune WHERE nome = "+ nome_m );
    update("UPDATE azienda SET istat= rt WHERE nome="+ nome);

    }


    }


    Grazie comunque per il tuo aiuto

  4. #4
    ma ti da errore di esecuzione o di compilazione?
    che errori ti da?

  5. #5
    mi da errore in compilazione che è
    init:
    deps-jar:
    Compiling 1 source file to C:\LAVORI TAM\INSERT_VALUE\build\classes
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:33: cannot find symbol
    symbol : variable connection
    location: class insert_value.Main
    Statement statement=connection.createStatement();
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:43: cannot find symbol
    symbol : variable lenght
    location: class java.lang.String[]
    for (int j=0 ; j<arr.lenght ; j++){
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:49: cannot find symbol
    symbol : variable len
    location: class insert_value.Main
    char [] testo = new char[len];
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:50: cannot find symbol
    symbol : variable len
    location: class insert_value.Main
    char [] testo_new = new char[len];
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:55: cannot find symbol
    symbol : method toUpperCase(char)
    location: class insert_value.Main
    testo_new[0]= toUpperCase(sup);
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:57: cannot find symbol
    symbol : variable len
    location: class insert_value.Main
    for(int m=1;m<len;m++){
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:61: cannot find symbol
    symbol : method toUpperCase(char)
    location: class insert_value.Main
    testo_new[m] = toUpperCase(sup);
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:64: cannot find symbol
    symbol : method toLowerCase(char)
    location: class insert_value.Main
    else testo_new [m] = toLowerCase(sup);
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:68: cannot find symbol
    symbol : method select(java.lang.String)
    location: class insert_value.Main
    ResultSet rt = select("SELECT istat FROM comune WHERE nome = "+ nome_m );
    C:\LAVORI TAM\INSERT_VALUE\src\insert_value\Main.java:69: cannot find symbol
    symbol : method update(java.lang.String)
    location: class insert_value.Main
    update("UPDATE azienda SET istat= rt WHERE nome="+ nome);
    10 errors
    BUILD FAILED (total time: 0 seconds)

  6. #6
    allora... non è arr.lenght ma arr.length
    hai fatto import java.sql.*; ?
    poi + volte hai scritto len...
    codice:
     char [] testo = new char[len];
    char [] testo_new = new char[len];
    dove lo hai dichiarato?


    queste istruzioni non so proprio cosa significhino...
    codice:
     ResultSet rt = select("SELECT istat FROM comune WHERE nome = "+ nome_m );
    update("UPDATE azienda SET istat= rt WHERE nome="+ nome);
    se mi spieghi cosa volevi fare qui forse posso aiutarti...
    altri errori non ne vedo...

    ma usi un tool di programmazione? perchè da quanto posso capire non mi sembra!! usa eclipse: è gratuito ed è ottimo!!!

  7. #7
    Sono proprio una stupida, mi sono dimenticata sia di mettere la funzione UpperCase che LowerCase e di dichiarare len, comunque ora resta qualche problema nella parte
    ResultSet rt = select("SELECT istat FROM comune WHERE nome = "+ nome_m );
    update("UPDATE azienda SET istat= rt WHERE nome="+ nome);
    qui volevo fare la query
    SELECT istat FROM comune WHERE nome = "+ nome_m
    prendere l'istat e metterlo nella tabella azienda tramite
    UPDATE azienda SET istat= rt WHERE nome="+ nome

    Io comunque sto usando NetBeans perchè mi ci trovo meglio che con Eclipse.

    Grazie ancora

  8. #8
    non conosco questa sintassi...
    quindi non ti saprei dire...
    se non dovesse funzionare in quel modo comunque puoi sempre ricorrere nel modo in cui ti ho detto per l'estrazione dei dati dalla query...

  9. #9
    ho fatto come mi hai spiegato tu perchè è meglio. Solo che comunque l'istruzione
    Statement statement = connection.createStatement();
    che mi avevi detti da l' errore
    symbol : variable connection
    location: class insert_value.Main
    Statement statement1 = connection.createStatement();

    sai cosa può essere?

    Grazie

  10. #10
    come lo chiami tu l'oggetto Connection che usi per collegarti al db?
    il problema dovrebbe essere quello!!!!
    io ho scritto connection per farti capire che era un oggetto di tipo Connection !!!

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