Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [Java] getArray e ResultSet, come si combinano???

    Ho questo metodo(vedi sotto), che fa un'interrogazione e mantiene tutto il result set nella variabile rs, per inviare il contenuto della colonna di nome NOME_COLONNA_1 in un jInputBox di nome txtNome scrivo:
    txtNome.setText(rs.getString("NOME_COLONNA_1"));

    Fin qui tutto ok, ora avrei bisogno che la colonna NOME_COLONNA_2 presente nel ResultSet rs vada in un array, credo che il metodo getArray("nome colonna") faccia al caso mio, però non ho capito a pieno come posso sfruttare questa possibilità. Ad esempio, a me servirebbe che mi creasse un array di Stringhe chiamato ad esempio pippo, in modo che invocando pippo[1] possa vedere l'elemento corrispondente.

    Chi mi potrebbe aiutare io non ci sono riuscito in alcun modo...
    Grazie mille anticipatamente...


    codice:
     private void formWindowOpened(java.awt.event.WindowEvent evt)
    {
            ResultSet rs=mdbc.inviaQuery("select * from ... where ...");
    
            try {
                rs.next();
                    txtNome.setText(rs.getString("NOME_COLONNA_1"));
                    /* rs.getArray("NOME_COLONNA_2"); DA COMPLETARE*/
           } catch {
                // EXCEPTION
           }

  2. #2
    Se ho ben capito, hai una colonna del risultato della query che è di tipo *SQL* Array, e vuoi leggerne i valori. In tal caso il metodo getArray() in effetti va bene, solo che non ti restituisce un array di stringhe, ma un oggetto di tipo *Java* java.sql.Array; per ottenere l'array di valori devi invocare su di esso il metodo getArray().
    In sostanza devi fare:
    codice:
    rs.getArray("NOME_COLONNA_2").getArray();
    e poi iteri sugli elementi dell'array.

    Ciao,

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Ho provato come dici tu, in runtime mi dice:
    Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException
    at sun.jdbc.odbc.JdbcOdbcResultSet.getArray(JdbcOdbcR esultSet.java:4425)

    Ora lo devo fare a mano??? Qualcuno mi saprebbe dire come fare? Considerando il metodo di cui sopra ho aggiunto al suo interno questo:

    codice:
    // ...
                int i = 0;
                String[] pippo = new String[1];
                while(!rs.isLast()) {   
                    pippo[i] = rs.getString("DB_NOME_COLONNA2");
                    i++;
                    System.out.println("DENTRO");
                }
                System.out.println("FUORI");
    // ...
    Questo codice così com'è non mi dà errori, ma i due system.Out nn vengono eseguiti, e non sò perchè, quindi non ho modo di vedere se gli array vengono assegnati o meno.

    Help

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Prima di sbatterci contro la testa, chiarisci che vuoi fare:

    ES:
    codice:
    id  nome        cognome
    1    andrea       rossi
    2    mario        verdi
    3    angela       vattelappesca
    4    maria        santissima
    Se tu volevi utilizzare ad esempio
    codice:
    tuoArray = rs.getArray("nome");
    sperando in questo modo di avere in tuoArray un array {"andrea", "mario", "angela", "maria"}, bhè, non è il modo in cui funziona getArray. Non è nemmeno il modo di funzionare di getArray il recuperare tutta una riga come fosse un unico array (che dovrebbero essere? Object?), ossia

    codice:
    tuoArray = rs.getArray(1);
    Non ti recupera un array {"1", "andrea", "rossi"}

    getArray è stato pensato per quando i database riusciranno a manipolare un campo di tipo array. in MySQL che io sappia non è ancora stato implementato
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Io uso Oracle. Grazie per la spiegazione.
    Qualcuno mi saprebe guidare con il codice che ho postato sopra? perchè dopo il while nn stampa?

  6. #6
    Per iterare sui record di un recordSet puoi fare così:

    codice:
    while( rs.next() )
    {
      // qui leggi i valori delle varie colonne di ogni singolo record; ad esempio:
      rs.getInt( "CODICE" );
      rs.getString( "NOME" );
    }
    Ciao,

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    sì, fin qui ci siamo, il mio problema è associare il valore di rs.getInt( "CODICE" ) all'i-esimo elemento di un array. Quello che ho scritto ospra nn sò se funziona visto che nn posso fare print :|

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.