Uwaga: Wszystkie poniższe ćwiczenia mają za zadanie jedynie pomóc
przy uczeniu się Prevayler. Są dobrowolne. Nie będzie za nie
punktów ani złych ocen.
Możliwe rozwiązania przedyskutujemy na pracowni lub wykładzie. Pwodzenia :)
Mając dany program FamilyTest, zaimplementować (dokończyć FamilyTest), następujące zapytania:
Klasy można implementować dowolnie, wszystko zależy od wyobraźni. Do przechowywania danych można użyć standardowych klas (java.util.ArrayList, java.util.HashMap, ...) lub napisać własne.
public Collection getChildren()
{
Collection children = new ArrayList();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(
"SELECT NAME FROM CHILDREN WHERE ID IN "
+ "(SELECT ID FROM PARENTS)");
while (resultSet.next())
children.add(resultSet.getString("NAME"));
statement.close();
return children;
}
public Collection getChildren()
{
Collection children = new ArrayList();
for (Iterator p = parents.iterator(); p.hasNext(); )
{
Parent parent = (Parent) p.next();
children.addAll(parent.getChildren());
}
return children;
}
Pytanie: Jaka jest zasadnicza różnica pomiędzy zwracanym wynikiem w
obu zapytaniach (kolekcja children)? (zad4?)
(
podpowiedź)
Zmodyfikować kod programu (zad6?), tak aby zamiast
serializacji obiektu typu Integer,
serializowany był obiekt innej klasy (można
wykorzystać przykłady z tej listy: Parent, Child).
Porównać wyniki.
Uwaga: celem ćwiczenia 4 nie jest napisanie programu, tego programu być może nawet nie da się napisać w przeciągu całego kursu. Na pierwszą pracownię należy posiadać pomysł. W czasie pracowni będzie on realizowany.