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:
- trzeba połączyć
elementy okienka z kodem programu, czyli napisać "okienkowy" program w
Javie: z polami typu Edit, Combobox, przyciskami itp.
- i ma to sprawnie
funkcjonować!
Zalety:
- jw. :) Wydaje mi
sie, że warto byście Państwo przećwiczyli taką aplikację (może przydać
sie na przyszłość),
- za napisanie apletu.
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.
- Bulusu
Lakshman "Oracle i Java
Programowanie", wyd. MIKOM, 2002: Rozdział 1, Rozdział 3, ew.
Rozdział 4.
- Fred Butzen,
Dorothy Forbes "Linux. Bazy Danych", wyd. MIKOM, 1999: Rozdział 5.
- Michał Lentner "Oracle 9i", wyd.
Polsko-Japońska Wyższa Szkoła Technik Komputerowych,
2003:Rozdział 14 (część tylko) - w tej książce jest opis XML-a
do Oracle'a! (ew. gdyby miało sie Państwu przydać)
opracowała: Anna Zatwarnicka