Pobranie danych z bazy

0

Witam,
Do czego najlepiej zrzucać dane pobrane selectem z tablicy ? Mam tabelkę Pracownicy i chcę wyciągnąć ID, Imie, Nazwisko itp. Jak zrzucić kilka rekordów z bazy do jakiejś tabelki, najlepiej "asocjacyjnej", gdzie będę mógł podać nazwę klucza ?

0

Czuje rozwiązanie z PHP... Jak masz ResultSet to najlepiej mapować go na obiekt. To oznacza, że musisz zrobić coś w stylu:

List<Person> persons = new LinkedList<Person>();
while(resultSet.next){
   persons.add(new Person(resultSet.getInt("id"), resultSet.getString("name")));
}
0

Wcześniej zrobiłem coś takiego:

 

int i = 1;
Map mapka = new HashMap();
Map mapka_2 = new HashMap();

while (rs.next()) {
   mapka.clear();
   mapka.put("Id", rs.getInt("id_pracownik"));
   mapka.put("Nazwisko", rs.getString("Nazwisko"));
   
   mapka_2.put(i, mapka);
   i++;
}

Z zamyśle miało to być tak:
Odczytuję dane z wiersza (Id,Imie,Nazwisko itp) i zrzucam to do tabeli, gdzie mam zbiorczy wynik zapytania, np. mam 30 wierszy z selecta:
{
[1] => {[Id]=> 1,[Imie]=> Adam,[Nazwisko]=> Nowak },
[2] => {[Id]=> 3,[Imie]=> Stefan,[Nazwisko]=> Karwowski}
}
Wszystko jest ok do momentu wrzucania mapka do mapka_2. W mapka_2 mam wszystkie jednakowe wpisy

{
[1] => {[Id]=> 3,[Imie]=> Stefan,[Nazwisko]=> Karwowski},
[2] => {[Id]=> 3,[Imie]=> Stefan,[Nazwisko]=> Karwowski}
}

Czyli chciałem zrobić w stylu zrzucania danych w PHP, tablica z kluczami i w niej dane.

0

a tak z ciekawosci, po co ?
kwestia przyzwyczajenia z php ? :) czemu nie uzyjesz listy z obiektami reprezentujacymi rekordy ?

0

A błąd wynika z tego, że cały czas działasz na tej samej referencji mapka.

0

Dobra zrobiłem coś takiego:

Pracownicy, odpowiadającą za graficzną prezentację danych pobranych z bazy

Baza szukanie = new Baza();
.....
 LinkedList dane_wyszukiwania = szukanie.szukaj_pracownik_lista(Pole_Imie.getText(),Pole_Nazwisko.getText());
 

Mam plik Baza, odpowiedzialny za komunikacje z bazą sqlite

 
  public static LinkedList szukaj_pracownik_lista(String imie, String nazwisko) throws Exception{

      LinkedList<Person> osobniki = new LinkedList<Person>();

      ResultSet rs = stat.executeQuery("select * from Pracownik where "
            + "Imie like '%"+imie+"%' and Nazwisko like '%"+nazwisko+"%' ;");
      while(rs.next()){
          osobniki.add(new Person(rs.getInt("id_pracownik"),
                  rs.getString("Imie"), rs.getString("Nazwisko"),
                  rs.getString("Stanowisko"), rs.getString("Data_urodz")));
      }
      return osobniki;
  }

W pliku Baza mam dostęp do danych "osobniki" i mogę sobie wyświetlić

 
JOptionPane.showMessageDialog(null, osobniki.getFirst().nazwisko);

i mam dostęp bezpośrednio do nazwiska

A teraz jak z pliku Praownicy dostać się do tego ?

 
JOptionPane.showMessageDialog(rootPane, dane_wyszukiwania.);

I co dopisać po ".", żeby mieć dostęp do nazwiska ? :)
Jak wpiszę bez . to mi wyrzuca ..Person@jakies_numerki_i_cyfry

0

Troche zgaduje, na czym moze polegac problem, ale wydaje mi sie rozwiazaniem bedzie rzutowanie:

JOptionPane.showMessageDialog(rootPane, ((Person)dane_wyszukiwania.getFirst()).nazwisko);

lub zdefiniowanie, by ten LinkedList przechowywal tylko konkretny typ danych:

LinkedList<Person> dane_wyszukiwania = ...
0

Podziałało
LinkedList<Person> dane_wyszukiwania =
:)

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