BD-1st-2.4-lab10.tresc-1.1-Slajd5

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Nawiązywanie połączeń

Nawiązywanie połączeń


Większość klas JDBC API znajduje się w pakiecie „java.sql”. Należy zatem pakiet ten zaimportować, aby możliwa była praca z JDBC (1). Pierwszą czynnością po rozpoczęciu programu, którą należy wykonać, jest rejestracja sterownika (2). Rejestrację można wykonać za pomocą instrukcji:

Class.forName(łańcuch_zawierający_nazwę_klasy_sterownika);

W ten sposób można rejestrować dowolną liczbę sterowników. Jeżeli podana nazwa klasy sterownika jest niepoprawna, zgłaszany jest wyjątek „ClassNotFoundException”. Poniżej przedstawiono kilka nazw klas sterowników dla różnych SZBD (nazwy te mogą się zmienić wraz z rozwojem sterownika):


IBM DB2:

„COM.ibm.db2.jdbc.app.DB2Driver” (Typ 2)

„com.ibm.db2.jcc.DB2Driver” (Typ 4)

MS/SQL Server/Sybase:

„net.sourceforge.jtds.jdbc.Driver” (dla sterownika jDTS)

„com.microsoft.sqlserver.jdbc.SQLServerDriver„ dla wersji 2005 MS/SQL Server (dla sterownika Microsoftu)

„com.microsoft.jdbc.sqlserver.SQLServerDriver„ dla wersji 2000 MS/SQL Server (dla sterownika Microsoftu)

mySQL:

„com.mysql.jdbc.Driver”

Oracle:

„oracle.jdbc.driver.OracleDriver”

PostgreSQL:

„org.postgresql.Driver”


Po zarejestrowaniu sterownika możliwe jest nawiązanie połączenia z SZBD. Połączenie należy utworzyć za pomocą statycznej metody „getConnection” klasy „DriverManager”. Pierwszym parametrem tej metody jest URL połączenia z SZBD, a drugim i trzecim są odpowiednio: nazwa użytkownika i hasło. Adres URL określa z jakim SZBD należy nawiązać połączenie, oraz jego adres sieciowy. Metoda zwraca obiekt klasy implementującej interfejs „Connection”, który reprezentuje nawiązane połączenie. Jeżeli nawiązanie połączenia z jakiegoś powodu się nie powiedzie, zostanie zgłoszony wyjątek „SQLException”. Format adresu URL potrafi być dość skomplikowany i zawierać wiele różnych opcji połączenia. Poniżej przedstawiono kilka przykładowych adresów URL, w ich najprostszej wersji, dla różnych SZBD:

IBM DB2:

jdbc:db2//server:port/database (Typ 4 sterownika) jdbc:db2//server/database (Typ 4 sterownika)

jdbc:db2:database (Typ 2 sterownika)

MS/SQL Server/Sybase:

jdbc:jtds:server_type://server:port[/database] (dla sterownika jTDS)

jdbc:sqlserver://server:port;databasename=database (MS/SQL 2005, sterownik Microsoftu)

jdbc:microsoft:sqlserver://server:port;databasename=database (MS/SQL 2000, sterownik Microsoftu)

mySQL:

jdbc:mysql://server:port/database

Oracle:

jdbc:oracle:thin:@//server:port/service (Typ 4 sterownika)

jdbc:oracle:thin:@server:port:sid (Typ 4 sterownika)

jdbc:oracle:oci:@//server:port/service (Typ 2 sterownika)

jdbc:oracle:oci:@server:port:sid (Typ 2 sterownika)

PostgreSQL:

jdbc:postgresql://server:port/database

W powyższych adresach URL, „server”, „port” i „database” oznaczają kolejno: adres serwera, port na którym nasłuchuje serwer oraz nazwa bazy danych. Parametr „server_type” jest specyficzny dla sterownika jTDS i oznacza „sqlserver” lub „sybase”, w zależności od SZBD z którym chcemy nawiązać połączenie. W SZBD Oracle bazę danych można identyfikować na dwa sposoby: albo poprzez SID, albo poprzez nazwę usługi („service”). Stąd, podano wersje URL wykorzystujące jeden i drugi sposób identyfikacji.

Rozważmy przykład (3) na slajdzie. Instrukcja na tym przykładzie rozpoczyna się od deklaracji zmiennej „con” typu „Connection”, której przypisywany jest następnie wynik działania metody „getConnection”. Metodzie „getConnection” przekazano trzy parametry aktualne:

- URL: jdbc:oracle:thin:@dblab.cs.put.poznan.pl:1521:dblab10g oznaczający że połączenie ma zostać nawiązane za pomocą sterownika typu 4, z serwerem bazy danych znajdującym się pod adresem dblab.cs.put.poznan.pl, nasłuchuącym na porcie 1521, z bazą danych o SID dblab10g,

- nazwę użytkownika: elearning_user,

- hasło: elearning_pass.

Powyższe parametry są przykładowe. Podczas wykonywania zadań, należy podać metodzie getConnection parametry odpowiednie dla konfiguracji środowiska, na którym wykonywane są ćwiczenia. Jeżeli parametry te są nieznane, należy się o nie zapytać prowadzącego zajęcia. W wyniku instrukcji przedstawionej na przykładzie (3) do zmiennej „con” zostanie zapisany obiekt reprezentujący nawiązane połączenie.

Połączenie zamykane jest za pomocą metody „close”, którą należy aktywować na rzecz obiektu reprezentującego nawiązane połączenie (4). Jeżeli zamknięcie połączenia nie odbędzie się w sposób prawidłowy, zgłaszany jest wyjątek „SQLException”.


Pełny kod programu, którego fragmenty przedstawiono na slajdzie, załączono do kursu w pliku JDBCELearning1.java.


<< Poprzedni slajd | Spis treści | Następny slajd >>