Javne dane

Java jako nowoczesny język programowania umożliwia tworzenie aplikacji bazodanowych. Różnią się one jednak od podobnych aplikacji napisanych w innych językach programowania. Czym? Przede wszystkim uniwersalnością - można je, tak jak zwykłe aplikacje Javy, przenosić na różne platformy i korzystać z dowolnych baz danych.
Java jako nowoczesny język programowania umożliwia tworzenie aplikacji bazodanowych. Różnią się one jednak od podobnych aplikacji napisanych w innych językach programowania. Czym? Przede wszystkim uniwersalnością - można je, tak jak zwykłe aplikacje Javy, przenosić na różne platformy i korzystać z dowolnych baz danych.

Połączenia z bazami danych w Javie odbywają się za pośrednictwem JDBC (Java DataBase Connectivity), czyli specjalnego API udostępnianego przez biblioteki Javy do obsługi baz danych. Aby z punktu widzenia aplikacji sposób dostępu był niezależny od bazy danych, JDBC musi na siebie przejąć zadanie komunikacji z różnymi bazami. Realizuje to za pomocą sterowników, czyli klas implementujących interfejs JDBC do konkretnej bazy danych.

Sterowniki JDBC mogą być napisane całkowicie w Javie i w związku z tym łatwo przenośne lub współpracować z elementami właściwymi dla danej platformy uruchomieniowej. Sterowniki napisane w Javie mogą komunikować się bezpośrednio z bazą danych za pomocą jej własnych protokołów lub wykorzystywać standardowe protokoły komunikacyjne do nawiązywania połączeń z serwerami pośredniczącymi, które w ich imieniu będą komunikować się z bazami danych. Natomiast sterowniki zależne od platformy uruchomieniowej to albo hybrydy używające fragmentów kodu natywnego ze względu na wydajność, albo interfejsy do lokalnych sterowników ODBC (Open DataBase Connectivity), tzw. mostki JDBC-ODBC.

Instalacja sterownika

Okno aplikacji z tabelą umieszczoną w przewijanym panelu JScrollPane.Kliknij, aby powiększyćOkno aplikacji z tabelą umieszczoną w przewijanym panelu JScrollPane.Ponieważ nasz program będzie korzystał z relacyjnej bazy danych MySQL, wykorzystamy MySQL Connector/J - sterownik napisany w Javie, komunikujący się bezpośrednio z bazą danych. Można go ściągnąć wraz z dokumentacją ze strony MySQL AB pod adresem: http://www.mysql.com/downloads/api-jdbc.html . Jest to archiwum .zip, w którym znajduje się plik .jar, w naszym wypadku o nazwie mysql-connector-java-3.1.10-stable-bin. Należy go umieścić w podkatalogu jre\lib\ext katalogu, w którym zainstalowana jest Java. Ponadto należy ustawić ścieżkę dostępu, dodając do zmiennej środowiskowej classpath (ustawia się ją we właściwościach systemu) bezwzględną ścieżkę do pliku ze sterownikiem:

classpath .;C:\j2sdk1.4.2\jre\lib\ext\mysql_connector-java-3.1.10-stable-bin.jar

Powyższa ścieżka definiuje miejsce poszukiwań klas wymaganych przez uruchamianą aplikację, przy czym kropka określa bieżący katalog, a średnik pełni funkcję separatora.

Przygotowanie bazy

Gdy sterownik jest już zainstalowany, możemy uruchomić bazę MySQL i wykonać w niej odpowiednie polecenia tworzące bazę danych oraz tabelę, której będziemy używać z naszego programu. Najprościej w tym celu utworzyć w katalogu bin bazy MySQL zwykły plik tekstowy (np. baza.txt) i umieścić w nim polecenia SQL do wykonania w bazie danych, a następnie w oknie konsoli wpisać polecenie:

mysql -u nazwa_uzytkownika -p < baza.txt

Przed wykonaniem operacji MySQL zapyta o hasło dostępu (odpowiednie konto użytkownika musi już być w bazie danych). Plik baza.txt zawiera instrukcje, które po kolei tworzą bazę, wybierają ją jako aktywną, tworzą tabelę i wstawiają przykładowe wartości:

create database biblioteka;
use biblioteka;
create table ksiazki (
id int unsigned not null
auto_increment primary key,
tytul char(20) not null,
autor char(30) not null);
insert into ksiazki values(
null,'Lalka', 'Bolesław Prus');
insert into ksiazki values(
null,'Potop', 'Henryk Sienkiewicz');
...

Podstawowy szkielet aplikacji

Projekt składa się z sześciu plików źródłowych .java z implementacjami klas odpowiadających za utworzenie głównego okna aplikacji, dodanie kontrolek oraz zbudowanie menu rozwijanego. Klasę główną stanowi plik Baza1.java:

public class Baza1{
public static void main(String[] args) {
Okno okno = new Okno();
//poniższa funkcja musi być wywołana
//przed pozostałymi metodami
okno.setUndecorated(true);
okno.setLocationRelativeTo(null);
okno.setVisible(true);
}
}

Okno aplikacji z dodanymi obiektami PasekMenu, MenuRoz i ElementMenu.Kliknij, aby powiększyćOkno aplikacji z dodanymi obiektami PasekMenu, MenuRoz i ElementMenu.To klasa, w której tworzony jest obiekt głównego okna programu, zdefinio-wany w pliku Okno.java. Ponieważ plik znajduje się w tym samym katalo-gu, co główna klasa, nie trzeba go importować. W związku z tym nie umieszczamy również dyrektywy package na początku implementacji klasy Okno. Po utworzeniu obiektu okno wywołujemy metodę setUndecorated() z parametrem true, aby okno nie miało paska tytułu. Poza tym wywołujemy znane już metody: setLocationRelativeTo() umieszczającą okno na środku ekranu oraz metodę setVisible() ustawiającą widoczność okna. Trzeba pamiętać, że metoda setUndecorated() musi być wywołana pierwsza.

Następnie tworzymy panel, który dodamy później do powierzchni okna. Jego implementacja znajduje się w pliku Pane.java:

public class Pane extends JPanel {
public Pane() {
setBackground(new Color(150,200,250));
Border pusta =
BorderFactory.createEmptyBorder(1,1,1,1);
Border wytrawiona =
BorderFactory.createEtchedBorder();
Border krawedzZew = BorderFactory.
createCompoundBorder(wytrawiona,pusta);
Border krawedz = BorderFactory.
createCompoundBorder(krawedzZew,wytrawiona);
setBorder(krawedz);
}
}

Konstruktor klasy Panel nie robi niczego istotnego oprócz określenia wyglądu panelu. Panel jest jednak potrzebny, bo to właśnie do niego będziemy dodawać kontrolki.

Mając gotowy panel, możemy zdefiniować klasę Okno (w pliku Okno.java). W jej konstruktorze za pośrednictwem metody setSize() określamy rozmiar okna na 500 pikseli szerokości i 200 pikseli wysokości, dodajemy panel, a także pierwszą kontrolkę - etykietę z tytułem aplikacji:

public class Okno extends JFrame {
...
public Okno() {
setSize(500,200);
p = new Pane();
etykieta = new JLabel("Moja biblioteka");
p.add(etykieta);
...
}
}

Ocena:
Twoja ocena:

Komentarze (5)

Krzysiek

16-01-2008 14:38

Problem ogarnąłem już jakiś czas temu i wystarczyło samo awt. Śmiga wszystko z bazą danych jak potrzeba, pozostaje dopracować mi sposób prezentacji przetwarzanych danych z bazy.

kamil

19-05-2007 21:27

miałem również problem z połączeniem się z bazą MySQL. Robiłem wszystko według podanego przepisu. I nic. Szukając dalej znalazłem przykład, w którym podczas ładowania klasy sterownika dodano metodę newInstance(). Pomogło. Całe wywołanie, które u mnie zadziałało ma postać: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); Korzystam z NetBeans 5.0 i MySQL 5.0

Krzysiek

14-02-2007 00:48

Niestety u mnie nie poszło, NetBeans 5.5 zrobił co mógł a dalej klapa. Jak ktoś wie jak powinien wyglądać plik (poprawiony) Baza1.java i Okno.java niech się odezwie na maila. Pozdrawiam

nickt

19-11-2006 09:21

fajny artkuł, ale przydałoby się więcej sztuczków i kruczek ;) odnośnie samej współpracy javy z bazą danych

Norr

02-11-2006 06:52

Niestety brak podanych bibliotek jakich trzeba użyć do wykonania aplikacji.

Kariera w IT 2012

Kariera w IT 2012
Uczelnie, rynek pracy, rekrutacja, pracodawcy, rozwój zawodowy - czyli wszystko, co chcielibyście wiedzieć o pracy specjalistów IT w Polsce. Piszemy jakie uczelnie wybrać, dlaczego warto studiować informatykę i kierunki techniczne, jak wygląda proces rekrutacji i jak dobrze wypaść przed pracodawcą, opisujemy pracodawców - firmy IT - i możliwe ścieżki kariery.

Polecane