okladka
Jeśli kiedykolwiek miałeś do czynienia z pisaniem aplikacji sięgających bezpośrednio do bazy danych, na przykład w języku C lub jakimkolwiek innym, na pewno spotkałeś się z koniecznością tzw. "mapowania" pewnych specyficznych typów danych jakiejś bazy do typów odpowiadających stosowanemu przez Ciebie językowi programowania. Java uwalnia Cię od tego niewygodnego obowiązku, gdyż wszelkie dane uzyskiwane z bazy stają się typami zmiennych, odpowiadających typom języka Java. Aplikacja bazodanowa napisana w Javie nie jest (a przynajmniej nie powinna być -- chyba że programista piszący ją sam tak zadecyduje) zależna od bazy danych.

W dobie szybkiego postępu technicznego i jeszcze szybszego rozwoju technologii internetowych Java stwarza możliwości, o jakich dotychczasowi programiści mogli jedynie marzyć. Dzięki swej jasnej koncepcji, prostocie oraz obiektowości Java stała się idealnym językiem we wszystkich zastosowaniach wymagających przejrzystości i jednocześnie wysokiego poziomu abstrakcji.

W niniejszej książce Autor poruszył następujące zagadnienia:

  • Java a programowanie bazodanowe;
  • relacyjna baza danych;
  • JDBC;
  • URL w aplikacjach bazodanowych;
  • aplikacje bazodanowe;
  • zaawansowane techniki obsługi baz danych;
  • wybrane klasy i interfejsy pakietu Java.SQL.

Rozdział 1. Java a programowanie bazodanowe (7)
Rozdział 2. Relacyjna baza danych (9)
  • Wprowadzenie (9)
  • Klucze (12)
  • Indeksy (13)
    • Indeksy oparte na drzewach binarnych (B-tree indexes) (14)
    • Indeksy z kluczem odwróconym (reverse key indexes) (14)
    • Indeksy bitmapowe (bitmap indexes) (15)
    • Indeksy oparte na funkcjach (16)
  • Klastry (17)
  • Widoki (views) (17)
  • Zawężenia (constraints) (18)
    • Zawężenie NOT NULL (18)
    • Zawężenie UNIQUE (19)
    • Zawężenie PRIMARY KEY (klucz podstawowy) (19)
    • Zawężenie FOREIGN KEY (klucz zewnętrzny) (19)
    • Zawężenie CHECK (19)
  • Procedury wyzwalane (triggers) (20)
  • Ochrona danych (security) (21)
    • Przywileje (privileges) (21)
    • Role (roles) (22)
  • Transakcje (23)
Rozdział 3. Wprowadzenie do projektowania baz danych (25)
  • Normalizacja danych (25)
    • Pierwsza postać normalna (26)
    • Druga postać normalna (27)
    • Trzecia postać normalna (28)
  • Denormalizacja (29)
    • Denormalizacja w dół (30)
    • Denormalizacja w górę (31)
    • Denormalizacja przez podział (32)
Rozdział 4. Wprowadzenie do SQL-a (35)
  • Typy danych (36)
  • Polecenie SELECT (37)
  • Polecenie INSERT (40)
  • Polecenie UPDATE (42)
  • Polecenie DELETE (43)
  • Polecenie CREATE TABLE (44)
  • Polecenie ALTER TABLE (45)
  • Polecenie DROP TABLE (46)
  • Polecenie CREATE VIEW (46)
  • Polecenie DROP VIEW (47)
  • Polecenie CREATE INDEX (47)
  • Polecenie DROP INDEX (48)
  • Polecenie CREATE ROLE (48)
  • Polecenie DROP ROLE (48)
  • Polecenie GRANT (49)
  • Polecenie REVOKE (50)
  • Kilka przydatnych funkcji (50)
    • Funkcja COUNT (51)
    • Funkcja SUM (52)
    • Funkcja AVG (52)
    • Funkcja MAX (52)
    • Funkcja MIN (53)
    • Funkcje LOWER i UPPER (53)
  • Łączenie tabel (53)
  • Uwagi końcowe (56)
Rozdział 5. JDBC (57)
  • Co to jest JDBC? (57)
  • Struktura JDBC (58)
  • Sterowniki JDBC (59)
  • Wybrane klasy i interfejsy JDBC - odpowiedzialne za obsługę operacji na bazach danych (61)
  • Wykaz metod obiektu ResultSet wykorzystywanych do odczytu niektórych typów zmiennych. (63)
Rozdział 6. URL w aplikacjach bazodanowych (65)
  • URL-e w JDBC (65)
Rozdział 7. Aplikacje bazodanowe (67)
  • Łączenie się z bazą danych (67)
  • Wykonywanie zapytań (69)
  • Obsługa wyjątków SQL-a (71)
  • Modyfikowanie danych w bazie (71)
  • Obsługa pól mających wartość null (74)
  • Obsługa transakcji (75)
Rozdział 8. Przykład 1 (77)
Rozdział 9. Zaawansowane techniki obsługi bazy danych (91)
  • Możliwości obiektu typu ResultSet (91)
    • Przesuwanie kursora obiektu ResultSet (92)
    • Rodzaje obiektów ResultSet (95)
    • Modyfikowanie danych za pomocą obiektu ResultSet (96)
    • Wykorzystanie obiektu ResultSet do modyfikacji danych w bazie a bezpieczeństwo transakcji (SELECT ... FOR UPDATE) (99)
    • Odświeżanie danych (100)
  • Preinterpretowane zapytania (prepared statements) (101)
  • Przechowywane procedury (stored procedures) (104)
  • Batch update (106)
  • Obsługa bardzo dużych obiektów (pól) (109)
  • Struktury (111)
  • Metadane (115)
    • Wprowadzenie (115)
    • ResultSetMetaData (115)
    • DatabaseMetaData (116)
Rozdział 10. Przykład 2 (119)
Rozdział 11. Przykład 3 (139)
Rozdział 12. Remote Method Invocation (RMI) (153)
  • Wprowadzenie (153)
  • Tworzenie prostej aplikacji RMI w skrócie (155)
  • Tworzenie prostej aplikacji RMI - przykład (157)
  • Zdalna aktywacja (161)
  • Wykorzystanie obiektu MarshalledObjectData (166)
Rozdział 13. Przykład 4 (169)
Rozdział 14. Wybrane klasy i interfejsy pakietu java.sql (211)
  • Wybrane interfejsy pakietu java.sql (211)
    • Interface java.sql.Array (211)
    • Interface java.sql.Blob (212)
    • Interface java.sql.CallableStatement (213)
    • Interface java.sql.Clob (214)
    • Interface java.sql.Connection (215)
    • Interface java.sql.Driver (218)
    • Interface java.sql.PreparedStatement (219)
    • Interface java.sql.Ref (221)
    • Interface java.sql.ResultSet (222)
    • Interface java.sql.SQLData (230)
    • Interface java.sql.SQLInput (230)
    • Interface java.sql.SQLOutput (231)
    • Interface java.sql.Statement (231)
    • Interface java.sql.Struct (235)
  • Wybrane klasy pakietu java.sql (236)
    • Class java.sql.Date (236)
    • Class java.sql.DriverManager (237)
    • Class java.sql.DriverPropertyInfo (238)
    • Class java.sql.Time (239)
    • Class java.sql.Timestamp (240)
  • Wybrane klasy wyjątków pakietu java.sql (241)
    • Exception Class java.sql.BatchUpdateException (241)
    • Exception Class java.sql.DataTruncation (242)
    • Exception Class java.sql.SQLException (243)
    • Exception Class java.sql.SQLWarning (243)