Lista zadań nr 1

Podstawy JDBC, HSQLDB

Dane są tabele:

Ksiazka( Sygn INT PK, Autor VARCHAR(50), Tytul VARCHAR(50), IleStron INT )
Czytelnik( Pesel CHAR(11) PK, Imie VARCHAR(20), Nazwisko VARCHAR(40) )
Wypozyczenie(ID INT PK, Sygn INT REF Ksiazka, Pesel CHAR(11) REF Czytelnik, DataOd DATE, DataDo DATE, Oddana BOOL)

Zadania z tej listy należy wykonać wykorzystując HSQLDB (podręcznik) i język Java. Kod powinien być aplikacją konsolową.

  1. Napisz program, który utworzy tabele Ksiazka, Czytelnik i Wypozyczenie. W przypadku, gdy jakaś tabela już istnieje, program powinien ją najpierw usunąć.
    [2p]
  2. Utwórz klasę Database, która będzie zawierać metody :
    • void Connect() — funkcja ma być bez parametrów; nawiązuje połączenie na podstawie jakiegoś pliku konfiguracyjnego
    • string[][] SelectData(String query) — wykonuje zapytanie typu SELECT i zwraca wynik,
    • int UpdateData(String query) — wykonuje zapytania typu INSERT, UPDATE i DELETE i zwraca liczbę zmodyfikowanych rekordów.
    • void Close() — funkcja zamyka wszystko co jest w obiekcie typu Database jeszcze nie zamknięte.
    [2p]
  3. Korzystając z klasy Database napisz program, który jako parametr będzie brał nazwę tabeli oraz typ wyniku, gdzie typem może być: csv, xml, screen. W wyniku generuje zawartość tabeli w odpowiednim formacie: czytelnym w postaci tabelki (screen), CSV (csv) lub XML (xml).
    [3p]
  4. Korzystając z klasy Database napisz program, który wstawi przykładowe dane do tabel. Program powinien działać w następujący sposób:
    • Dane do wstawienia powinny być w plikach: ksiazka.csv, czytelnik.csv i wypozyczenie.csv. Jak sugeruje rozszerzenie, powinny to być pliki typu CSV. Danych proponuję poszukać w Internecie (książek powinno być co najmniej 200, czytelników 50, a wypożyczeń 450).
    • Program powinien wczytać rekordy z powyższych plików, ale ponieważ zakładamy, że w tabelach mogą być już dane, powinny zostać wstawione rekordy o identyfikatorach, które jeszcze bazie danych nie występują
    [3p]