|
|
||||||
|
#1
|
|
|
|
|
Mam taką klasę obsługującą połączenia do bazy danych. W klasie głównej w
metodzie main tworze obiekt: sqlconnect baza = new sqlconnect(...); a następnie pobieram dane z bazy: baza.getDane(); i tu pojawia się problem - wyjątek java.lang.NullPointerException, ale nie wiem dlaczego (połączenie do bazy danych działa). Problem jest chyba tutaj z wpisaniem do tablicy danych. Jesli deklaruje zmienna "zwroc" jako String pobieram dane jako: zwroc=zwroc+":"+rs.geString(daneKol[j]) wszystko jest w porządku, ale takie rozwiązanie raczej odpada(przy większej ilości danych) Czy ktoś mógłby mi podpowiedzieć co może być nie tak? class sqlconnect() { .... public sqlconnect(...) { ... } ... public void getDane(String[] daneKol) { //String[] daneKol = {"kolumna1","kolumna2"}; String zwroc[][] = null; ... while (rs.next()) { for (int j=0;j<daneKol.length;j++) { zwroc[rs.getrow()][j]=rs.getString(daneKol[j]); //<--- java.lang.NullPointerException } } closeConnection(); ... } } Pozdrawiam, Maciek |
|
|
|
#2
|
|
|
|
|
> zwroc[rs.getrow()][j]=rs.getString(daneKol[j]); //<---
> java.lang.NullPointerException pokaż printStackTrace |
|
#3
|
|
|
|
|
> zwroc[rs.getrow()][j]=rs.getString(daneKol[j]); //<---
> java.lang.NullPointerException >pokaż printStackTrace Dzieki ale juz sobie poradzilem, wystarczyło zainicjować tylko tablice jako: String zwroc[][] = new String[20][20]; Ale mam tutaj kolejny problemik, przy inicjacji. Chciałbym aby rozmiar tablicy Stringów był ustawiany dynamicznie: PreparedStatement stnt = null; String zwroc[][] = null; java.sql.ResultSet rs = null; ..... stnt=con.prepareStatement(stmt); rs=stnt.executeQuery(); System.out.println(stnt.getMaxRows()); <----- pokazuje zawsze zero, a powinno zwracać ilość wierszy w zwróconym zapytaniu. zwroc = new String[rs.getMaxRows()][]; niestety pojawia się: java.lang.ArrayIndexOutOfBoundsException ponieważ getMaxRows ustawił wymiar na 0; Pozdrawiam Maciek |
|
#4
|
|
|
|
|
Maciek wrote:
getMaxRows() Returns: the current maximum number of rows for a ResultSet object produced by this Statement object; zero means there is no limit> Więc nie tędy droga. Może być kombinacja rs.last(); rs.getRow(), rs.beforeFirst(), ale trzeba mieć kursor "wracający" ;) Rufik |
|
#5
|
|
|
|
|
>getMaxRows()
>Returns: > the current maximum number of rows for a ResultSet >object produced by >this Statement object; zero means there is no limit> >Więc nie tędy droga. Może być kombinacja rs.last(); >rs.getRow(), >rs.beforeFirst(), ale trzeba mieć kursor "wracający" ;) No to teraz wszystko jest jasne, wielkie dzieki |
|
#6
|
|
|
|
|
Maciek wrote:
> Ale mam tutaj kolejny problemik, przy inicjacji. Chciałbym aby rozmiar > tablicy Stringów był ustawiany dynamicznie: Do czego tego potrzebujesz? Nie lepiej uzyc kolekcji i ew. na koncu zrobic toArray() ? Bartek |
|
|
| Podobne wątki | |
| VFP[9] Wczytywanie danych z www Witam, Potrzebuje wczytywać (wielokrotnie) tabele kursów ze strony NBP: [..] Na dole strony jest tabela w formacie XML ... niestety ciągle pod inna nazwą. (Np dzisiejsza to:... |
|
| Wczytywanie z pliku - było Wczytywanie danych z rejestru Wiatm wszystkich, jako że nikt nie był w stanie mi pomóc w sprawie TRegistry, wpadłem na inny pomysł jak to zrobić z pominięciem tego. Oto do czego doszedłem: 1) Odpalić z... |
|
| Wczytywanie danych Pytanie moze banalne. Jak wczytac do trzech zmiennych taka linie ze stdin? 3 0 2 (spacja po srodku) Pozdro. |
|
|
Czasy w strefie GMT. Teraz jest 21:57. | Privacy Policy
|