Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Java] Problema con Object[][]

    hio ho questo metodo che deve passare i dati ad un altro metodo.
    il secondo metodo richiede un Object[][].
    il problema è che nn so come riempire l'Object[][]:
    codice:
        public Object[][] select() throws ClassNotFoundException, SQLException, IOException {
            Object obj[][] = null;
            ArrayList<String> list = null;
            conn = DBManager.getInstance().takeConnection();
            CallableStatement cstmt = conn.prepareCall("{ CALL getBook() }");
            ResultSet rs = cstmt.executeQuery();
            while (rs.next()) {
                list = new ArrayList<String>();
                list.add(String.valueOf(rs.getInt("book_id")));
                list.add(rs.getString("title"));
                list.add(rs.getString("author_name"));
                list.add(rs.getString("editor_name"));
                list.add(String.valueOf(rs.getDouble("price")));
                list.add(rs.getString("isbn"));
                list.add(rs.getString("note"));
            }
            cstmt.close();
            return obj;
        }
    in pratica nel primo array ci devo mettere tutte le righe (che nn so quante siano in quanto dipendono dai record del db).
    nel secondo array ci vanno invece i valori estrapolati dal ResultSet.
    avete qualòche suggerimento??

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Per ottenere il numero di righe del ResultSet potresti puntare all'ultima riga, ed ottenere il numero corrente della riga con getRow(); successivamente tornare all'inizio ed iniziare il ciclo di lettura.
    Quell'ArrayList è errato messo in quel modo... crei un ArrayList ogni qual volta ricominci il ciclo.

  3. #3
    si grazie è la strda che stavo cercando di seguire.
    peccato che mi abbiano cambiato le carte in tavola.
    l'altro metodo (che nn scrivo) nn richiede Object[][] ma solo Object[].
    il problema è un altro a questo punto.
    in caso apro un altro 3D.

    PS: l'ArrayList è messo così xchè va a riempire una JTble.
    se nn ne istanzioni uno nuovo ad ogni ciclo le righe della JTable sarebbero sempre uguali.
    ciauz!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Se vuoi una mano devi spiegare bene la situazione allora. Se hai solo un array di Object si può tranquillamente usare un ArrayList, e poi ottenere un array tramite il metodo toArray().

    Ho posto quella domanda poichè al suo interno non vi è il codice che inserisce la riga nella tabella...

  5. #5
    eh infatti è proprio li il problema.
    io per ora inserisco le righe nella jtable così:
    codice:
        public void select() throws ClassNotFoundException, SQLException, IOException {
            ArrayList<String> list = null;
            conn = DBManager.getInstance().takeConnection();
            CallableStatement cstmt = conn.prepareCall("{ CALL getBook() }");
            ResultSet rs = cstmt.executeQuery();
            while (rs.next()) {
                list = new ArrayList<String>();
                list.add(String.valueOf(rs.getInt("book_id")));
                list.add(rs.getString("title"));
                list.add(rs.getString("author_name"));
                list.add(rs.getString("editor_name"));
                list.add(String.valueOf(rs.getDouble("price")));
                list.add(rs.getString("isbn"));
                list.add(rs.getString("note"));
                ((MyTableModel) PanelTable.getTable().getModel()).addRow(list.toArray());
            }
            cstmt.close();
        }
    poi nel JPanel richiamo il metodo che mi immette le righe.
    io invece vorrei evitare che sia questo metodo a mandare i dati.
    vorrei che i dati fossere presi dal jpanel.
    sto facendo un po di prove ma ho qualche problemino.
    se nn riesco posto il problema in un altro 3D visto che qua ormai nn c'entra nulla.
    grazie!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Ok, allora apri un altro topic specificando meglio il problema e la struttura che stai adottando. (mi riferisco alla progettazione ed a quello che hai in mente)

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.