Anna Zatwarnicka

Bazy danych
IV rok informatyki
studia dzienne


Java - wprowadzenie

1. Wytyczne/Opis zagadnienia

W drugiej częsci będziecie Państwo zajmować się tworzeniem apliakcji w Javie. Programu, który będzie się łączył z serwerem bazodanowym.

Funkcjonalość apliakcji ma być typu: "maszynka do zadawania zapytań do bazy", co tlumaczy się następująco:
gdy szef Pani Krysi potrzebuje różnych zestawień itp. prosi o nie Panią Krysię. Ale szef jest nieprzewidywalny - nigdy nie wiadomo, czy będzie chciał dane swoich pracowników mieć posortowane wg imienia, nazwiska czy ilości przepracowanych nadgodzin. I jakich informacji potrzebuje: imie i nazwisko, czy numer buta też?

Określacie Państwo, na jakiego rodzaju danych Wasza "maszynka do zadawania zapytań do bazy będzie pracować": na jednej tabeli? na jednej tabeli głównej i kilku słownikowych (jeśli potrzebne), może też na kilku tabelach. Państwo określacie na początku i mnie o tym informujecie.

Państwa apliakcja musi mieć następujące elementy:
listę pól, które użytkownik życzy sobie oglądać (imię, nazwisko, adres itp.),
wykaz pól, w których użytkownik może wpisać kryterium wyszukiwania (np. imię - i tu Pani Krysia wpisze "Jaś", nazwisko - i tu wpisze "Kowalski"),
proszę przygotować się na ewentualność, że Pani Krysia nigdzie nic nie wpisze, że wpisze dane z błędami itp. czyli pełny przegląd zabezpieczeń przed niefrasobliwością tudzież nieuwagą Pani Krysi. I drobna uwaga: jeśli Pani Krysia nigdzie nic nie wpisze - to nie błąd! Po prostu nie są wymagane dodatkowe kryteria wyszukiwania. Czyli bierzemy-jak-leci, czyli (to już podpowiedź!) nie będzie klauzuli where.

2. Kwestie - nazwijmy to: techniczne
Państwa twórczość dotycząca tworzenia apliakcji w Javie (nie mylić z JSP! JSP traktujemy jako szczególny przypadek Javy!) będzie z konieczności obarczona pewnymi restrykcjami.

Nasz bazodanowy serwer wyrocznia widziany jest tylko poprzez elektrę. Nieważne, skąd Państwo się łączycie. Nie ma więc możliwości napisania aplikacji Javy łączącej się bezpośrednio z Waszą bazą danych na Windowsach. Chyba, że Państwo macie Oracle 9i (Akademicka Inicjatywa Oracle'a).

To cóż robić?

Najnowsze wieści: NIE MACIE PAŃSTWO WYBORU!
Szczegółowo: bez zbytniego kombinowania można napisać tylko aplikację konsolową (punkt 2a). Aplet i aplikację okienkową tylko - na własnym sprzęcie. Aplikację do MSSQL-a - na własną odpowiedzialność.

2a. Aplikacja konsolowa na elektrze

Będzie działać. Bez żadnych kombinacji.
Czyli taka bez okienek. Można napisać apliakcję Javy działającą na serwerze elektra. Przecież na nim też Java jest. Kod programu piszecie Państwo w czymkolwiek (vi, pico, joe, edytor z mc), kompilujecie do postaci binariów a potem uruchamiacie.

Kompilowanie:

javac program.java

Uruchamianie:

java program

Uwaga! Pnieważ program konsolowy z konieczności będzie programem sekwencyjnym (czyli działa od początku do końca) i nie ma "atrakcji" typu: okienka edycyjne i Combobox, należy jakoś sprytnie zaprogramować aplikację. Aplikcja ma się zameldować, co robi. Zamiast okienek edycyjnych komunikaty dla Pani Krysi: "Proszę podać imię pracowanika :", itp. Zamiast Combobox (ktore były wykorzystywane do wyświetlania zawartości tabel słownikowych): albo Pani Krysia wpisuje "ręcznie" odpowiednie dane (a aplikacja sprawdza, czy wpisała coś, co rzeczywiście jest w bazie), lub wyświetlacie Pani Krysi zawartość tabeli słownikowej, żeby wiedziała, co wpisać (jeśli miasta to: 1-Opole, 2-Wrocław, to ew. może czytając nazwę, wpisać numer porządkowy - nie zawsze będzie to klucz tabeli słownikowej!).

2a. Aplet/Aplikacja okienkowa

Na komputerach uczelnianych nie zadziała!
Powód: kod apletu jest ściągany do przeglądarki użytkownika i to komputer użytkownika go wykonuje! A komputer użytkownika nie może bezpośrednio połączyć się z serwerem bazodanowym. Komputer z aplikacją javy też nie może połączyć się bezpośrednio z serwerem bazodanowym.

Możecie Państwo napisac aplet lub aplikację, ale wtedy na zajęcia zaliczeniowe musicie zatroszczyć się o warunki do pokazania waszej pracy.
Skąd dowiedzieć się więcej informacji o apletach/aplikacjach? Z jakiejkolwiek książki nt. programowania w Javie.

Wady:
Zalety:
2c. Aplikacja Javy łącząca się z serwerem MSSQL

Na Państwa własną odpowiedzialność!
Zastrzegam sobie, co następuje: w przypadku aplikacji łączącej się z MSSQL-em ma to być aplikacja! Porządna!
Proszę sprawdzić zgodność architektury Państwa bazy MSSQL z tym, co ja mam w materiałach (innymi słowy: czy tabelki takie same! Albo powiecie mi dokładnie i nie pytani o różnicach, albo zrobicie nową bazę na MSSQL zgodną z diagramami, które mam!).

3. Podsumowując:
Państwa praca składać się będzie z:
- określenia co robicie (które tabele),
- napisania szkiletu aplikacji (okienko lub program konsolowy, innymi słowy oprogramowanie wejść/wyjść programu),
- sklejanie informacji pobranych od użytkownika w zapytanie do bazy danych (if na różne sposoby oraz sklejanie wartości zmiennych typu String),
- oprogramowanie łączenia z serwerem bazodanowym, zadawanie zapytań do bazy, oprogramowanie rozłączenia,
- mile widziana obsługa błędów i wyjątków (try{}catch{}).

Proszę pamiętać o Pani Krysi!!!!!!

4. Materiały pomocnicze:

- bardzo przykładowy (czytaj: ogólny) pliczek łączący się z bazą danych - do pobrania |tutaj|,
- słowa kluczowe do wyszukiwarek: aplikacja (ew. aplet) Java Oracle programowanie itp.
- materiały książkowe:

Na ogół większość książek dotyczących baz danych Oracle'a ma rozdział dotyczący tworzenia aplikacji klienckich w Javie.



opracowała: Anna Zatwarnicka