Pobranie danych z bazy PSQL

0

Witam.
Chciałbym jeśli mogę, prosić Was o pomoc w utworzeniu funkcji która pobierze mi dane z bazy postgresql. Dane przechowywane są w jednej tabeli. Potrzebuję pobrać wszystkie dane, bez nagłówków. Trudność polega na tym że dane muszę pobrać do tablicy. Każdy wiersz z danej kolumny musi być przetrzymywany osobno w taki sposób abym już mając pobrane te dane, mógł się do nich odwołać ponieważ chciałbym na tych danych wykonać później pewne operacje których wynik będzie zapisany na końcu danego wiersza. Oczywiście całe połączenie z bazą itd mam już wykonane. Dane chcę wyświetlić w textArea. Czy mogę liczyć na Waszą pomoc? Nie koniecznie proszę o gotowca ale chociaż może o jakiś przykład bo ciężko taki znaleźć. Odczyt z pliku itd to wszystko jest ale z bazy przykładów brakuje.

0

Oczywiście próbuję też coś sam w tej kwestii napisać i udało mi się sklepać takie proste pobieranie ale obawiam się że to nie wystarczy bo tak jak mówię, ja potrzebuję to zapisać w tablicy żebym do każdego wiersza w danej kolumnie mógł się odwołać a w tym co napisałem to odczytuję wiersz po wierszu z bazy i tyle.

...
        Statement s = null;
        try {
            s = conn.createStatement();
            ResultSet r;                
            r=s.executeQuery("Select * from raport;");
            r.next();   

            ResultSetMetaData rsmd = r.getMetaData();
            int numcols = rsmd.getColumnCount();

            for (int i = 1; i <= numcols; i++) { 
             System.out.print(rsmd.getColumnLabel(i)+"  |  "); 
            }
            System.out.print("\n------------------------------------\n");

            while (r.next()) {
                for (int i = 1; i <= numcols; i++) {
                     Object obj = r.getObject(i);
                     if (obj != null)System.out.print(obj.toString()+ " | ");
                     else  System.out.print(" ");
                   }
                System.out.println();
            }
        } catch (SQLException e) {
            System.out.println("Blad odczytu z bazy! " +e.toString());
            System.exit(3);
        }
...
0

Może dodawaj pobrane rekordy do arrayList. Coś tu wymyśliłem ale nie wiem czy jest do dobre bo nie sprawdzałem

ArrayList<Object[]> dane = new ArrayList<Object[]>();
            while (r.next()) {
                Object[] wiersz = new Object[numcols];
                for (int i = 1; i <= numcols; i++) {
                    wiersz[i - 1] = r.getObject(i);
                }
            }
            for (Object[] rekord : dane) {
                for (Object wartosc : rekord) {
                     if (wartosc != null)System.out.print(wartosc.toString()+ " | ");
                     else  System.out.print(" ");
                }
                System.out.println();
            }
0

Ja proponuje programować obiektowo. Czyli coś w ten deseń

List list = new ArrayList();
 while (r.next()) {
Raport report = new Report();
report.setName(r.getObject(0));
report.setSum(Double.valueOf(r.getObject(1)));
...            }

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0