Szukasz rozwiązania problemów związanych z korzystaniem z relacyjnych baz danych w połączeniu z programowaniem obiektowym? Chcesz poprawić wydajność i jakość aplikacji bazodanowych? A może rozwiązania, które stosowałeś dotychczas, okazują się niewystarczające przy dużych projektach? Sięgnij po Hibernate, czyli rewolucyjne narzędzie stanowiące warstwę pośredniczącą pomiędzy aplikacją i bazą danych, umożliwiające utrwalanie i odczyt obiektów Javy w bazie. Hibernate eliminuje konieczność ręcznego tworzenia kodu odwzorowującego obiekty na model relacyjny i odwrotnie, a także znacząco poprawia wydajność i stabilność aplikacji. Nie bez znaczenia również jest fakt, iż Hibernate dostępne jest na licencji open-source.
Książka "Hibernate w akcji", napisana przez twórców tego narzędzia, to wyczerpujący podręcznik dla programistów, którzy planują zastosować je w swoich projektach. Czytając ją, dowiesz się, na czym polega odwzorowanie obiektowo-relacyjne i w jaki sposób implementuje je Hibernate. Poznasz zasady tworzenia i stosowania obiektów trwałych, zarządzania transakcjami i buforowania danych. Znajdziesz także informacje o optymalizowaniu wydajności aplikacji stosujących Hibernate oraz procesie projektowania takich aplikacji.
W książce poruszono m.in.:
* Odwzorowania obiektowo-relacyjne
* Konfiguracja i uruchomienie Hibernate
* Odwzorowywanie danych w klasach
* Stosowanie obiektów trwałych
* Transakcje i buforowanie
* Wydajne pobieranie obiektów z bazy
* Projektowanie aplikacji wykorzystujących Hibernate
* Narzędzia wspomagające działanie Hibernate
Poznaj Hibernate i przekonaj się,
jak dzięki niemu usprawnisz swoją pracę.
Użyj Java Data Objects --
przełomowej technologii trwałości obiektów na platformie Java
Książka "Java Data Objects":
* Demonstruje praktyczne techniki stosowane przez zawodowych programistów
* Zawiera poprawny, gruntownie przetestowany kod źródłowy programów oraz przykłady zaczerpnięte z praktyki
* Skoncentrowana jest na nowoczesnych technologiach, które muszą poznać programiści
* Zawiera rady profesjonalistów, które pozwolą czytelnikowi tworzyć najlepsze programy
Java Data Objects (JDO) przyspiesza tworzenie aplikacji w Javie dostarczając obiektowego mechanizmu trwałości i standardowych interfejsów umożliwiających korzystanie z baz danych. Książka ta jest wszechstronnym przewodnikiem po zagadnieniach trwałości JDO, przeznaczony dla zaawansowanego programisty.
Korzystając z realistycznych przykładów kodu autorzy przedstawiają sposoby tworzenia, pobierania, aktualizacji i usuwania obiektów trwałych, cykl życia obiektów i przejścia pomiędzy stanami, klasy i interfejsy JDO, zapytania, architekturę, problemy bezpieczeństwa i wiele innych zagadnień. Prezentują sposoby integracji JDO z EJB™, JTA, JCA i innymi technologiami J2EE™, omawiają też najlepsze sposoby wykorzystania JDO przez samodzielne aplikacje oraz komponenty J2EE™.
Jeśli chcesz poświęcić więcej czasu na rozwiązywanie zagadnień biznesowych, a mniej tracić na zajmowanie się problemem trwałości, to potrzebujesz właśnie JDO i jednej dobrej książki, która pomoże Ci efektywnie użyć JDO: "Java Data Objects".
* Omówienie specyfikacji JDO i podstawowych zagadnień związanych z trwałością obiektów
* Programowanie z użyciem JDO; najważniejsze klasy i obiekty
* Cykl życia obiektów
* Wyszukiwanie danych w JDO
* Przykładowa architektura i jej konstrukcja z użyciem JDO
* JDO a J2EE: JCA, EJB, transakcje, bezpieczeństwo
* Porównanie JDO z JDBC
* Przyszłość JDO i rozwój tej specyfikacji
* Studium przypadku
Uzupełnieniem są liczne dodatki omawiające między innymi: stany JDO, metadane, język JDOQL w notacji BNF i dostępne implementacje JDO.
* Praktyczne przykłady ilustrują możliwości użycia JDO przez istniejące aplikacje
* Tworzenia efektywniejszych systemów dzięki JDO
* Integracja JDO z J2EE krok po kroku
* Najlepsze sposoby wykorzystania JDO przez aplikacje biznesowe
Autorzy:
Sameer Tyagi jest architektem systemów biznesowych w firmie Sun Microsystems i pracuje w Java Center w Burlington w stanie Massachusets. Ma za sobą osiem lat doświadczeń zawodowych w dziedzinie informatyki i jest współautorem wielu książek związanych z technologiami Javy.
Keiron McCammon jest szefem działu technologii w firmie Versant Corporation. Pracuje w branży informatycznej już ponad dziesięć lat i zajmuje się głównie zastosowaniami technologii obiektowej w biznesie. Jest członkiem grupy eksperckiej JDO (JSR12) i często bierze udział w seminariach i konferencjach poświęconych tworzeniu aplikacji na platformach Java i J2EE przy wykorzystaniu JDO.
Michael Vorburger pracuje jako główny architekt oprogramowania w firmie Vertical zajmującej się tworzeniem oprogramowania. Jest aktywnym uczestnikiem listy dyskusyjnej poświęconej JDO.
Heiko Bobzin jest członkiem grupy eksperckiej JDO (JSR12). Prowadził prace związane z implementacją standardów JDO i ODMG 3.0 w firmie Poet Software, dostawcy obiektowych systemów baz danych.
Informacja -- najcenniejszy towar na współczesnym rynku, wymaga rozbudowanych narzędzi pozwalających na magazynowanie i korzystanie z niej. Do magazynowania informacji wykorzystywane są coraz bardziej rozbudowane systemy zarządzania bazami danych. Do przeglądania danych zgromadzonych w ich tabelach tworzone są mniej lub bardziej rozbudowane aplikacje. Dzięki nim informacje z baz danych przedstawiane są w formie możliwej do przeglądania, modyfikowania i drukowania.
Java -- w początkowym okresie swojego rozwoju kojarzona była wyłącznie z Internetem i koszmarnymi apletami typu "padający śnieg", dziś jest uznanym i popularnym językiem programowania, coraz częściej wykorzystywanym do tworzenia aplikacji bazodanowych. Producenci środowisk programistycznych również zwrócili uwagę na popularność Javy, co zaowocowało powstaniem kilku bardzo udanych narzędzi, a wśród nich -- JBuilder Enterprise.
"JBuilder i bazy danych" to podręcznik tworzenia aplikacji bazodanowych za pomocą środowiska JBuilder Enterprise. Przedstawia zarówno zagadnienia związane z bazami danych, jak i te, które wiążą się z wykorzystywaniem ich w aplikacjach w języku Java. Opisuje komponenty bazodanowe oferowane przez JBuildera oraz sposoby projektowania i implementowania aplikacji z ich wykorzystaniem. Zawiera również informacje dotyczące tworzenia mechanizmów raportujących i drukujących.
* Elementy języka SQL
* Tworzenie tabel baz danych
* Łączenie aplikacji z bazą danych
* Sterowniki JDBC
* SQL Server 2000
* Zastosowanie komponentów bazodanowych oraz komponentów graficznego interfejsu użytkownika w JBuilder
* Projektowanie aplikacji bazodanowej w JBuilder
* Raporty oraz drukowanie
Przekonaj się, jak szybko i efektywnie możesz tworzyć aplikacje w środowisku JBuilder.
Każdy z nas na co dzień korzysta z relacyjnych baz danych, czasem nawet nie zdając sobie z tego sprawy. Bazy danych zbierają to, co najcenniejsze w dzisiejszym świecie: informacje. Można je więc porównać do współczesnych skarbców.
Zrozumienie zasad projektowania baz danych umożliwia pełne wykorzystanie nowoczesnych aplikacji, niezbędnych w funkcjonowaniu niemal każdego przedsiębiorstwa. Pozwala na dobrą organizację, sprawne zarządzania danymi gromadzonymi przez poszczególne osoby.
"Wprowadzenie do baz danych" to książka dla kogoś, kto słyszał o bazach danych, ale nigdy tak naprawdę nie dowiedział się, czym są, co zawierają, jak je projektować i tworzyć. Książka napisana została z punktu widzenia osoby, której zadaniem jest utworzenie pierwszego w życiu projektu bazy danych lub która po prostu chce zdobyć wiedzę na ich temat.
Dzięki tej książce:
* Poznasz teorię baz danych, która pomoże zrozumieć ci, w jaki sposób funkcjonują bazy danych
* Zrozumiesz różnicę pomiędzy analizą a projektowaniem bazy danych oraz dowiesz się, w jaki sposób te dwie koncepcje ze sobą współistnieją
* Zrozumiesz potrzebę analizy podczas projektowania bazy danych
* Nauczysz się, jak na podstawie projektu zbudować fizyczną bazę danych
* Poznasz język programowania baz danych SQL
* Zrozumiesz znaczenie zarządzania bazami danych
* Nauczysz się budować aplikacje bazodanowe
Książka jest napisana prostym i przystępnym językiem, zrozumiałym zarówno dla początkujących programistów, jak i dla osób bez doświadczenia informatycznego. Przykłady prezentowane w książce oparte są na popularnym Accessie.
Jeśli jesteś osobą, która chce rozpocząć podróż po świecie baz danych, ale nie wiesz, od czego zacząć, ta książka jest właśnie dla Ciebie!
Rozpocznij pracę z bazami danych
PostgreSQL to jeden z najpopularniejszych systemów zarządzania relacyjnymi bazami danych (RDBMS) rozwijany na zasadzie wolnego oprogramowania. Zdaniem twórców jest to również najbardziej zaawansowany tego typu produkt na świecie. PostgreSQL umożliwia efektywne zarządzanie bazami danych w różnych systemach operacyjnych, w tym w licznych dystrybucjach Linuksa, systemach z rodziny Unix, Mac OS czy Windows. Jeśli chodzi o możliwości, wydajność i stabilność, PostgreSQL nie ustępuje komercyjnemu oprogramowaniu, a pod niektórymi względami nawet je przewyższa.
"PostgreSQL. Leksykon kieszonkowy" to zwięzły zbiór praktycznych informacji o jednym z najlepszych systemów RDBMS. Dzięki tej książce szybko zainstalujesz PostgreSQL oraz rozpoczniesz administrowanie tym systemem. Poznasz używane w nim typy danych, popularne instrukcje, funkcje i operatory. Nauczysz się obsługiwać tabele i tworzyć indeksy. Dowiesz się, jak stosować agregacje, złączenia i unie. Przeczytasz o technikach tworzenia widoków oraz używania transakcji, a także o złożonych instrukcjach PostgreSQL. Poznasz też metody obsługi znaków narodowych.
* Instalowanie PostgreSQL
* Administrowanie PostgreSQL
* Typy danych
* Instrukcje, funkcje i operatory
* Tworzenie i używanie indeksów
* Stosowanie złączeń, unii i widoków
* Agregowanie i grupowanie danych
* Stosowanie transakcji
* Korzystanie ze znaków narodowych
Jeśli szukasz nowoczesnego i darmowego systemu RDBMS,
PostgreSQL to doskonały wybór.
Poznaj ogromne możliwości MySQL-a
"MySQL. Podstawy" to wprowadzenie do pracy z MySQL. Opisuje system od strony użytkowej -- przedstawia zasady tworzenia baz i tabel, definiowania indeksów i kluczy oraz stosowania języka SQL do wprowadzania danych i wybierania ich z tabel. Omawia również zagadnienia bardziej zaawansowane -- mechanizmy transakcji. Jeśli chcesz dowiedzieć się czegoś o administrowaniu bazą MySQL, znajdziesz tu również informacje na ten temat -- od sposobów definiowania uprawnień użytkowników aż po precyzyjne "strojenie" bazy za pomocą odpowiednich opcji konfiguracyjnych, wykonywania kopii bazy oraz zabezpieczanie zgromadzonych w niej danych przed atakami z zewnątrz.
* Instalacja MySQL
* Struktura katalogów i plików w bazie MySQL
* Tworzenie baz, tabel i indeksów
* Operacje na danych z wykorzystaniem języka SQL
* Złożone zapytania
* Typy tabel i transakcje
* Administrowanie kontami użytkowników
* Administrowanie bazą danych
* Tworzenie kopii zapasowych baz danych
* Zabezpieczanie danych
* Optymalizacja serwera i baz danych
Zbiór wniosków wypracowanych w trakcie projektu "Światłowód Wiedzy" w 2013 r. Projekt poświęcony był rozwiązaniu społecznościowemu i uwalnianiu motywacji do dzielenia się wiedzą. Oparty na najnowszej literaturze przedmiotu oraz doświadczeniach w dziedzinie Zarządzania Wiedzą w Polsce.
Użyj Java Data Objects --
przełomowej technologii trwałości obiektów na platformie Java
Książka "Java Data Objects":
* Demonstruje praktyczne techniki stosowane przez zawodowych programistów
* Zawiera poprawny, gruntownie przetestowany kod źródłowy programów oraz przykłady zaczerpnięte z praktyki
* Skoncentrowana jest na nowoczesnych technologiach, które muszą poznać programiści
* Zawiera rady profesjonalistów, które pozwolą czytelnikowi tworzyć najlepsze programy
Java Data Objects (JDO) przyspiesza tworzenie aplikacji w Javie dostarczając obiektowego mechanizmu trwałości i standardowych interfejsów umożliwiających korzystanie z baz danych. Książka ta jest wszechstronnym przewodnikiem po zagadnieniach trwałości JDO, przeznaczony dla zaawansowanego programisty.
Korzystając z realistycznych przykładów kodu autorzy przedstawiają sposoby tworzenia, pobierania, aktualizacji i usuwania obiektów trwałych, cykl życia obiektów i przejścia pomiędzy stanami, klasy i interfejsy JDO, zapytania, architekturę, problemy bezpieczeństwa i wiele innych zagadnień. Prezentują sposoby integracji JDO z EJB™, JTA, JCA i innymi technologiami J2EE™, omawiają też najlepsze sposoby wykorzystania JDO przez samodzielne aplikacje oraz komponenty J2EE™.
Jeśli chcesz poświęcić więcej czasu na rozwiązywanie zagadnień biznesowych, a mniej tracić na zajmowanie się problemem trwałości, to potrzebujesz właśnie JDO i jednej dobrej książki, która pomoże Ci efektywnie użyć JDO: "Java Data Objects".
* Omówienie specyfikacji JDO i podstawowych zagadnień związanych z trwałością obiektów
* Programowanie z użyciem JDO; najważniejsze klasy i obiekty
* Cykl życia obiektów
* Wyszukiwanie danych w JDO
* Przykładowa architektura i jej konstrukcja z użyciem JDO
* JDO a J2EE: JCA, EJB, transakcje, bezpieczeństwo
* Porównanie JDO z JDBC
* Przyszłość JDO i rozwój tej specyfikacji
* Studium przypadku
Uzupełnieniem są liczne dodatki omawiające między innymi: stany JDO, metadane, język JDOQL w notacji BNF i dostępne implementacje JDO.
* Praktyczne przykłady ilustrują możliwości użycia JDO przez istniejące aplikacje
* Tworzenia efektywniejszych systemów dzięki JDO
* Integracja JDO z J2EE krok po kroku
* Najlepsze sposoby wykorzystania JDO przez aplikacje biznesowe
Autorzy:
Sameer Tyagi jest architektem systemów biznesowych w firmie Sun Microsystems i pracuje w Java Center w Burlington w stanie Massachusets. Ma za sobą osiem lat doświadczeń zawodowych w dziedzinie informatyki i jest współautorem wielu książek związanych z technologiami Javy.
Keiron McCammon jest szefem działu technologii w firmie Versant Corporation. Pracuje w branży informatycznej już ponad dziesięć lat i zajmuje się głównie zastosowaniami technologii obiektowej w biznesie. Jest członkiem grupy eksperckiej JDO (JSR12) i często bierze udział w seminariach i konferencjach poświęconych tworzeniu aplikacji na platformach Java i J2EE przy wykorzystaniu JDO.
Michael Vorburger pracuje jako główny architekt oprogramowania w firmie Vertical zajmującej się tworzeniem oprogramowania. Jest aktywnym uczestnikiem listy dyskusyjnej poświęconej JDO.
Heiko Bobzin jest członkiem grupy eksperckiej JDO (JSR12). Prowadził prace związane z implementacją standardów JDO i ODMG 3.0 w firmie Poet Software, dostawcy obiektowych systemów baz danych.
Informacja -- najcenniejszy towar na współczesnym rynku, wymaga rozbudowanych narzędzi pozwalających na magazynowanie i korzystanie z niej. Do magazynowania informacji wykorzystywane są coraz bardziej rozbudowane systemy zarządzania bazami danych. Do przeglądania danych zgromadzonych w ich tabelach tworzone są mniej lub bardziej rozbudowane aplikacje. Dzięki nim informacje z baz danych przedstawiane są w formie możliwej do przeglądania, modyfikowania i drukowania.
Java -- w początkowym okresie swojego rozwoju kojarzona była wyłącznie z Internetem i koszmarnymi apletami typu "padający śnieg", dziś jest uznanym i popularnym językiem programowania, coraz częściej wykorzystywanym do tworzenia aplikacji bazodanowych. Producenci środowisk programistycznych również zwrócili uwagę na popularność Javy, co zaowocowało powstaniem kilku bardzo udanych narzędzi, a wśród nich -- JBuilder Enterprise.
"JBuilder i bazy danych" to podręcznik tworzenia aplikacji bazodanowych za pomocą środowiska JBuilder Enterprise. Przedstawia zarówno zagadnienia związane z bazami danych, jak i te, które wiążą się z wykorzystywaniem ich w aplikacjach w języku Java. Opisuje komponenty bazodanowe oferowane przez JBuildera oraz sposoby projektowania i implementowania aplikacji z ich wykorzystaniem. Zawiera również informacje dotyczące tworzenia mechanizmów raportujących i drukujących.
* Elementy języka SQL
* Tworzenie tabel baz danych
* Łączenie aplikacji z bazą danych
* Sterowniki JDBC
* SQL Server 2000
* Zastosowanie komponentów bazodanowych oraz komponentów graficznego interfejsu użytkownika w JBuilder
* Projektowanie aplikacji bazodanowej w JBuilder
* Raporty oraz drukowanie
Przekonaj się, jak szybko i efektywnie możesz tworzyć aplikacje w środowisku JBuilder.
Każdy z nas na co dzień korzysta z relacyjnych baz danych, czasem nawet nie zdając sobie z tego sprawy. Bazy danych zbierają to, co najcenniejsze w dzisiejszym świecie: informacje. Można je więc porównać do współczesnych skarbców.
Zrozumienie zasad projektowania baz danych umożliwia pełne wykorzystanie nowoczesnych aplikacji, niezbędnych w funkcjonowaniu niemal każdego przedsiębiorstwa. Pozwala na dobrą organizację, sprawne zarządzania danymi gromadzonymi przez poszczególne osoby.
"Wprowadzenie do baz danych" to książka dla kogoś, kto słyszał o bazach danych, ale nigdy tak naprawdę nie dowiedział się, czym są, co zawierają, jak je projektować i tworzyć. Książka napisana została z punktu widzenia osoby, której zadaniem jest utworzenie pierwszego w życiu projektu bazy danych lub która po prostu chce zdobyć wiedzę na ich temat.
Dzięki tej książce:
* Poznasz teorię baz danych, która pomoże zrozumieć ci, w jaki sposób funkcjonują bazy danych
* Zrozumiesz różnicę pomiędzy analizą a projektowaniem bazy danych oraz dowiesz się, w jaki sposób te dwie koncepcje ze sobą współistnieją
* Zrozumiesz potrzebę analizy podczas projektowania bazy danych
* Nauczysz się, jak na podstawie projektu zbudować fizyczną bazę danych
* Poznasz język programowania baz danych SQL
* Zrozumiesz znaczenie zarządzania bazami danych
* Nauczysz się budować aplikacje bazodanowe
Książka jest napisana prostym i przystępnym językiem, zrozumiałym zarówno dla początkujących programistów, jak i dla osób bez doświadczenia informatycznego. Przykłady prezentowane w książce oparte są na popularnym Accessie.
Jeśli jesteś osobą, która chce rozpocząć podróż po świecie baz danych, ale nie wiesz, od czego zacząć, ta książka jest właśnie dla Ciebie!
Rozpocznij pracę z bazami danych
PostgreSQL to jeden z najpopularniejszych systemów zarządzania relacyjnymi bazami danych (RDBMS) rozwijany na zasadzie wolnego oprogramowania. Zdaniem twórców jest to również najbardziej zaawansowany tego typu produkt na świecie. PostgreSQL umożliwia efektywne zarządzanie bazami danych w różnych systemach operacyjnych, w tym w licznych dystrybucjach Linuksa, systemach z rodziny Unix, Mac OS czy Windows. Jeśli chodzi o możliwości, wydajność i stabilność, PostgreSQL nie ustępuje komercyjnemu oprogramowaniu, a pod niektórymi względami nawet je przewyższa.
"PostgreSQL. Leksykon kieszonkowy" to zwięzły zbiór praktycznych informacji o jednym z najlepszych systemów RDBMS. Dzięki tej książce szybko zainstalujesz PostgreSQL oraz rozpoczniesz administrowanie tym systemem. Poznasz używane w nim typy danych, popularne instrukcje, funkcje i operatory. Nauczysz się obsługiwać tabele i tworzyć indeksy. Dowiesz się, jak stosować agregacje, złączenia i unie. Przeczytasz o technikach tworzenia widoków oraz używania transakcji, a także o złożonych instrukcjach PostgreSQL. Poznasz też metody obsługi znaków narodowych.
* Instalowanie PostgreSQL
* Administrowanie PostgreSQL
* Typy danych
* Instrukcje, funkcje i operatory
* Tworzenie i używanie indeksów
* Stosowanie złączeń, unii i widoków
* Agregowanie i grupowanie danych
* Stosowanie transakcji
* Korzystanie ze znaków narodowych
Jeśli szukasz nowoczesnego i darmowego systemu RDBMS,
PostgreSQL to doskonały wybór.
Poznaj ogromne możliwości MySQL-a
"MySQL. Podstawy" to wprowadzenie do pracy z MySQL. Opisuje system od strony użytkowej -- przedstawia zasady tworzenia baz i tabel, definiowania indeksów i kluczy oraz stosowania języka SQL do wprowadzania danych i wybierania ich z tabel. Omawia również zagadnienia bardziej zaawansowane -- mechanizmy transakcji. Jeśli chcesz dowiedzieć się czegoś o administrowaniu bazą MySQL, znajdziesz tu również informacje na ten temat -- od sposobów definiowania uprawnień użytkowników aż po precyzyjne "strojenie" bazy za pomocą odpowiednich opcji konfiguracyjnych, wykonywania kopii bazy oraz zabezpieczanie zgromadzonych w niej danych przed atakami z zewnątrz.
* Instalacja MySQL
* Struktura katalogów i plików w bazie MySQL
* Tworzenie baz, tabel i indeksów
* Operacje na danych z wykorzystaniem języka SQL
* Złożone zapytania
* Typy tabel i transakcje
* Administrowanie kontami użytkowników
* Administrowanie bazą danych
* Tworzenie kopii zapasowych baz danych
* Zabezpieczanie danych
* Optymalizacja serwera i baz danych
Zbiór wniosków wypracowanych w trakcie projektu "Światłowód Wiedzy" w 2013 r. Projekt poświęcony był rozwiązaniu społecznościowemu i uwalnianiu motywacji do dzielenia się wiedzą. Oparty na najnowszej literaturze przedmiotu oraz doświadczeniach w dziedzinie Zarządzania Wiedzą w Polsce.
Zwięzły przewodnik opisujący najczęściej używane instrukcje języka Java
* Naucz się kompilować i uruchamiać programy w Javie
* Poznaj najpopularniejsze polecenia tego języka
* Pisz programy działające na wielu platformach
Już od wielu lat Java jest jednym z najpopularniejszych języków programowania, a znający ją programiści są poszukiwani i cenieni na rynku pracy. Jej atrakcyjność wynika głównie z tego, że kod napisany w tym języku można uruchamiać na wielu platformach, włączając w to różne systemy operacyjne, a także urządzenia przenośne, na przykład telefony komórkowe. Prosty jest także dostęp do wielu narzędzi oraz bezpłatnych bibliotek ułatwiających programowanie w Javie. Ponadto język ten otwiera wielkie możliwości w zakresie tworzenia aplikacji sieciowych.
"Java. Rozmówki" przedstawia skuteczne rozwiązania najczęściej występujących problemów i pomoże Ci błyskawicznie rozpocząć programowanie w tym języku. Dowiesz się, jak kompilować i uruchamiać programy w Javie. Nauczysz się manipulować ciągami, strukturami danych i datami oraz stosować wyrażenia regularne. Poznasz operacje wejścia i wyjścia, a także sposoby pracy z katalogami i plikami. Przeczytasz o aplikacjach sieciowych działających zarówno po stronie klienta, jak i po stronie serwera. Opanujesz efektywne techniki pracy z bazami danych i korzystanie z formatu XML.
* Kompilowanie i uruchamianie programów w Javie
* Współpraca ze środowiskiem
* Obsługa ciągów i liczb
* Korzystanie ze struktur danych
* Operacje wejścia i wyjścia
* Manipulowanie plikami i katalogami
* Praca z klientami i serwerami sieciowymi
* Komunikacja z bazami danych i używanie XML
* Programowanie wielowątkowe
Dzięki treściwym rozmówkom błyskawicznie poznasz praktyczne podstawy programowania w Javie.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Przyspiesz tworzenie aplikacji w Javie
* Uprość określanie zależności pomiędzy klasami
* Zastosuj narzędzie Hibernate do usprawnienia komunikacji z bazami danych
* Wykorzystaj możliwości programowania aspektowego
Technologia J2EE miała w założeniu być prosta i szybka w użytkowaniu. Praktyka jednak okazała się daleka od teorii. Mozolne tworzenie aplikacji wykorzystujących dziesiątki interfejsów połączonych wzajemnymi zależnościami, setki deskryptorów wdrożenia oraz plików pomocniczych spowodowało, że zaczęto poszukiwać rozwiązań alternatywnych. Jednym z nich okazał się framework Spring, zyskujący coraz większą popularność wśród programistów Javy. Spring jest znacznie dużo prostszy od wielu alternatywnych rozwiązań J2EE, znacznie ułatwia testowanie aplikacji, i pozwala na usuwanie zależności z kodu oraz oddzielanie ich od serwera aplikacji. Spring umożliwia również wykorzystanie programowania aspektowego.
Książka "Spring. Zapiski programisty" to praktyczny przewodnik po możliwościach tego środowiska. Jeśli wolisz poznawać nowe zagadnienia w sposób praktyczny, a nie wertując setki stron zapełnionych teoretycznymi wywodami, to ta książka jest właśnie dla Ciebie. Znajdziesz w niej omówienie zagadnień związanych z samym Springiem, współpracującymi z nim narzędziami i sposobami wykorzystania ich w procesie tworzenia aplikacji J2EE -- począwszy do graficznego interfejsu użytkownika i interfejsu sieciowego, a skończywszy na dostępie do relacyjnych baz danych.
* Tworzenie klas z zastosowaniem zależności
* Budowanie interfejsu użytkownika
* Integrowanie JSF z frameworkiem Spring
* Dostęp do baz danych za pomocą JDBC
* Odwzorowanie baz danych na obiekty za pomocą Hibernaete
* Obsługa i zabezpieczanie transakcji
* Wysyłanie i odbieranie wiadomości e-mail
Jeśli poszukujesz wydajniejszych metod tworzenia aplikacji J2EE, wykorzystaj możliwości frameworka Spring. Dzięki tej książce poznasz je wszystkie.
Choć Java to język gwarantujący efektywną pracę, to jednak kryje w sobie wiele pułapek, które mogą zniweczyć jej efekty. Książka ta ma za zadanie oszczędzić Twój czas i zapobiec frustracji przeprowadzając Cię bezpiecznie przez skomplikowane zagadnienia. Zespół ekspertów od języka Java pod wodzą guru programowania w osobie Michaela Daconta proponuje Ci zestaw sprawdzonych rozwiązań 50 trudnych problemów pojawiających się w praktyce każdego programisty. Rozwiązania te pozwolą Ci uniknąć problemów wynikających z niedostatków języka Java oraz jego interfejsów programowych, w tym pakietów java.util, java.io, java.awt i javax.swing. Autorzy dzielą się także z Czytelnikiem swoimi sposobami na poprawę wydajności aplikacji pisanych w Javie.
Oto niektóre z omawianych zagadnień:
* Składnia języka: zastosowanie metody equals() zamiast operatora == do porównywania obiektów klasy String
* Funkcjonalność wbudowana w język: rozdział metod a mechanizm refleksji, interfejsy i klasy anonimowe
* Użyteczne klasy i kolekcje: wybór klasy PropertyFile i ResourceBundle
* Wejście i wyjście, w tym subtelności związane z przesyłaniem serializowanych obiektów za pomocą gniazd sieciowych
* Graficzny interfejs użytkownika: sposoby uniknięcia typowej pułapki polegającej na zastosowaniu metody repaint() zamiast metody validate() w celu uzyskania nowego układu komponentów
* Graficzny interfejs użytkownika -- sterowanie: m.in. bardziej funkcjonalna kontrola danych wprowadzanych przez użytkownika
* Wydajność: m.in. zastosowanie odroczonego ładowania, tak by zwiększyć szybkość uruchamiania programów
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwletów i JSP.
* Jak kontrolować działanie aplikacji za pośrednictwem pliku deskryptora?
* Jakie są możliwości rozbudowy systemu zabezpieczeń?
* Jak można wykorzystać obsługę zdarzeń?
Platforma Java 2 jest najczęściej wykorzystywaną technologią do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usług sieciowych. Jej podstawą są serwlety i strony JSP, które są obsługiwane — przy użyciu komponentów wbudowanych lub dodatkowych — na praktycznie wszystkich serwerach WWW, a jednocześnie stanowią połączenie między klientami internetowymi i aplikacjami działającymi na serwerze.
Tom II prezentuje zaawansowane narzędzia i techniki służące do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli działania aplikacji za pomocą pliku web.xml, możliwości rozszerzenia systemu zabezpieczeń metodami deklaratywnymi i programistycznymi, a także sposoby używania filtrów serwletów i JSP. Przedstawiono tu także opis funkcji rzadziej używanych, lecz niezwykle przydatnych podczas tworzenia złożonych programów.
Książka „Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie” to wyczerpujący podręcznik dla programistów znających już podstawy technologiczne serwletów i stron JSP, którzy chcą poznać i wykorzystać ich zaawansowane możliwości.
Tom I zawiera szczegółowy opis serwletów i stron JSP, w tym nagłówki HTTP, pliki cookie, mechanizm śledzenia sesji, elementy skryptowe JSP, dołączanie plików, architekturę Model-Widok-Kontroler (MVC) i język wyrażeń JSP. Znajdziesz tam także opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.
Wykorzystaj wszystkie możliwości serwletów i stron JSP, aby tworzyć profesjonalne aplikacje!
* Deskryptor wdrożenia
* Zabezpieczenia programistyczne i deklaratywne
* Filtry serwletów i stron JSP
* Model i obsługa zdarzeń
* Własne biblioteki znaczników
* Platforma Apache Struts
Niezastąpiona pomoc dla użytkowników Linuksa
Linux staje się coraz popularniejszy i rozwija się coraz bardziej dynamicznie, wypierając w wielu miejscach komercyjne systemy operacyjne. Powstaje dla niego coraz więcej aplikacji. Graficzne środowiska pracy, takie jak GNOME czy KDE coraz częściej wypierają tryb tekstowy Linuksa. Nadal jednak większość zadań związanych z administracją systemem i dostępem do systemu plików wykonuje się za pomocą poleceń wydawanych w trybie tekstowym. Jednocześnie to właśnie polecenia są tym elementem Linuksa, który odstrasza od niego wielu potencjalnych użytkowników.
"Linux. Leksykon kieszonkowy" to książka dla tych, których do Linuksa zniechęca konieczność zapamiętania niezliczonej ilości poleceń i parametrów oraz dla tych, którzy pracują z nim na co dzień i potrzebują podręcznej „ściągi” przydatnej przy pracy. Zawiera zestawienie najbardziej przydatnych i potrzebnych w codziennej pracy poleceń systemu Fedora Linux, pogrupowanych według realizowanych przez nie funkcji, lecz większość zawartych w niej informacji będzie przydatna również użytkownikom innych dystrybucji Linuksa. Przedstawia również opcje i argumenty każdego z opisywanych poleceń.
* Korzystanie z systemu plików
* Funkcje powłoki bash
* Instalowanie nowego oprogramowania
* Operacje na plikach
* Obsługa kont użytkowników
* Korzystanie z internetu
* Programowanie skryptów powłoki
Środowisko programistyczne Delphi jest od dawna jednym z najpopularniejszych narzędzi stosowanych przez twórców aplikacji. Każda z jego wersji wnosiła wiele nowości, jednak wersja oznaczona symbolem 2005 to prawdziwy przełom. Umożliwia ona bowiem projektowanie aplikacji przeznaczonych dla platformy .NET, co otwiera przez programistami tysiące nowych możliwości. Mogą wykorzystywać bibliotekę klas FCL, tworzyć aplikacje nie tylko w znanym z poprzednich wersji Delphi języku Object Pascal, ale również w zyskującym coraz większą popularność języku C#, a także stosować w swoich programach klasy i obiekty napisane w dowolnym języku zgodnym z platformą .NET. Delphi 2005 to prawdziwa rewolucja.
Książka "Delphi 2005" wyczerpująco omawia najnowszą wersję tego środowiska programistycznego. Przedstawia jego możliwości i ich praktyczne zastosowanie. Szczegółowo opisuje zagadnienia podstawowe, takie jak praca z interfejsem użytkownika i stosowanie komponentów oraz tematy zaawansowane związane z tworzeniem aplikacji bazodanowych, korzystaniem z klas i obiektów specyficznych dla platformy .NET oraz pisaniem własnych komponentów.
* Korzystanie z elementów interfejsu użytkownika
* Zarządzanie plikami projektu
* Biblioteka klas .NET
* Przetwarzanie plików XML
* Zasady programowania obiektowego w Object Pascal
* Tworzenie aplikacji z wykorzystaniem biblioteki VCL.NET
* Połączenia z bazą danych za pomocą ADO.NET
* Zasady tworzenia własnych komponentów
Dzięki tej książce poznasz wszystkie możliwości najnowszej wersji Delphi.
Poznaj język programowania Flasha
i tchnij życie w projekty stron WWW
* Jak dostosować wygląd komponentów Flasha do stylu aplikacji?
* Jak tworzyć płynne i efektowne animacje, zmieniając szybkość odtwarzania klatek?
* Jak budować dynamiczne, interaktywne strony WWW za pomocą ActionScript 2.0?
Jesteś użytkownikiem Flasha? Uważasz, że wiesz już wszystko o jego narzędziach graficznych i animacyjnych? A może Twoja wyobraźnia podsuwa Ci pomysły, których realizacja wydaje się niemożliwa? Dodaj do swojego warsztatu znajomość ActionScript 2.0, języka programowania wykorzystywanego we Flashu. Stosując go, nadasz nową jakość swoim projektom. Przekonasz się, że to, co było niemożliwe do wykonania za pomocą narzędzi rysunkowych, stanie się dziecinnie łatwe dzięki ActionScript 2.0. Będziesz mógł kontrolować niemal każdy parametr wszystkich obiektów w prezentacji, pobierać dane z zewnętrznych źródeł, sterować szybkością odtwarzania filmu i wykonywać wiele innych zadań.
"ActionScript 2.0. Od podstaw" to książka będąca wprowadzeniem do programowania w tym języku. Czytając ją, poznasz środowisko programistyczne Flasha i podstawy języka ActionScript. Dowiesz się, czym jest programowanie obiektowe i w jaki sposób korzystać z jego możliwości. Nauczysz się przy użyciu ActionScript kontrolować wartości parametrów klipów filmowych na scenie, sterować ich zachowaniem oraz tworzyć nowe obiekty. Przeczytasz o wstawianiu do prezentacji materiałów graficznych i dźwiękowych pochodzących z zewnętrznych źródeł, danych tekstowych, a także opanujesz sterowanie odtwarzaniem animacji. Znajdziesz tu również informacje o wyszukiwaniu i usuwaniu błędów w kodzie.
* Zadania panelu Actions
* Podstawowe elementy języka ActionScript
* Programowanie obiektowe
* Projektowanie aplikacji we Flashu
* Sterowanie klipami filmowymi
* Korzystanie z komponentów
* Tworzenie elementów interaktywnych
* Praca z tekstem
* Wstawianie do prezentacji elementów multimedialnych
* Dynamiczne tworzenie elementów graficznych
* Przetwarzanie plików XML
* Komunikacja z serwerem i przeglądarką
Pracujesz we Flashu? Wzbogać swoje projekty
o możliwości, jakie daje Ci ActionScript.
* Jak wykorzystać strumienie?
* Jak stworzyć efektowny interfejs użytkownika?
* Jak zapewnić bezpieczeństwo w tworzonych aplikacjach?
Co spowodowało, że język programowania Java zyskał tak wielką popularność? Przyczyn jest kilka: możliwość przenoszenia kodu między programami, wydajność i to, co programiści lubią najbardziej - mechanizm automatycznego oczyszczania pamięci. Nie bez znaczenia jest również to, że Java jest językiem zorientowanym obiektowo, udostępnia obsługę programowania rozproszonego oraz świetną dokumentację. Ponadto liczne publikacje oraz pomocna społeczność sprawiają, że Java zajmuje poczesne miejsce wśród innych języków programowania.
Kolejne wydanie książki "Java. Techniki zaawansowane. Wydanie VIII" zostało zaktualizowane o wszystkie te elementy, które pojawiły się w wersji szóstej platformy Java Standard Edition. Dzięki tej książce dowiesz się, w jaki sposób wykorzystać strumienie, jak parsować dokumenty XML czy też w jaki sposób tworzyć aplikacje sieciowe. Poznasz interfejs JDBC, sposób wykorzystania transakcji oraz wykonywania zapytań SQL. Autorzy w szczegółowy sposób pokażą Ci, jak tworzyć aplikacje z wykorzystaniem biblioteki Swing. Dodatkowo przedstawią, w jaki sposób zapewnić bezpieczeństwo w tworzonych przez Ciebie aplikacjach. Wszystkie te - oraz wiele innych - zagadnienia zostaną przedstawione w przystępny i sprawdzony sposób!
* Wykorzystanie strumieni
* Dokumenty XML i ich wykorzystanie w języku Java
* Programowanie aplikacji sieciowych
* Wykorzystanie interfejsu JDBC
* Tworzenie aplikacji wielojęzycznych
* Możliwości pakietu Swing
* Wykorzystanie biblioteki AWT
* Bezpieczeństwo w aplikacjach
* Zastosowanie podpisu cyfrowego
* Sposoby wykorzystania obiektów rozproszonych (RMI)
Wykorzystaj zaawansowane możliwości języka Java w swoich projektach!
Stwórz własne aplikacje dla systemu Windows
* Jak pracować ze środowiskiem programistycznym Delphi?
* W jaki sposób tworzyć biblioteki DLL?
* Jak zaprojektować wydajną bazę danych?
* Jak tworzyć aplikacje operujące na bazach danych?
Wśród wszystkich środowisk programistycznych umożliwiających tworzenie aplikacji Delphi jest jednym z najbardziej znanych i popularnych. To narzędzie, obecne na rynku od ponad dwunastu lat, cieszy się zasłużonym uznaniem twórców oprogramowania — dzięki sporym możliwościom, ogromnej bibliotece komponentów i czytelnej składni języka Object Pascal, będącego podstawą tego środowiska. Najnowsza wersja Delphi, oznaczona symbolem RAD Studio 2007, nie tylko umożliwia tworzenie „klasycznych” aplikacji dla Windows, opartych o Windows API, ale także udostępnia kontrolki platformy .NET.
Książka „Delphi 2007 dla WIN32 i bazy danych” to podręcznik opisujący zasady tworzenia aplikacji dla systemu Windows w najnowszej wersji Delphi. Przedstawia ona techniki tworzenia aplikacji bazodanowych w oparciu o mechanizmy Windows API i kontrolki VCL. Czytając ją, poznasz komponenty, jakie Delphi oferuje programiście, i dowiesz się, jak korzystać z nich we własnych aplikacjach. Opanujesz mechanizmy komunikacji z niemal wszystkimi systemami zarządzania bazami danych dostępnymi na rynku. Przeczytasz także o tworzeniu wersji instalacyjnych napisanych przez siebie aplikacji.
* Interfejs użytkownika Delphi 2007
* Komponenty dostępne w Delphi
* Przetwarzanie grafiki
* Korzystanie z komponentów VCL
* Aplikacje wielowątkowe
* Tworzenie bibliotek DLL
* Operacje na plikach
* Obsługa dokumentów XML
* Projektowanie bazy danych i struktury tabel
* Komunikacja z bazami danych
* Mechanizmy blokowania rekordów
* Tworzenie wersji instalacyjnych aplikacji
Wykorzystaj możliwości najnowszej wersji środowiska programistycznego, które zrewolucjonizowało proces tworzenia aplikacji!
Język programowania PHP stanowi dla wielu osób przepustkę w świat pisania aplikacji działających po stronie serwera WWW. Łatwość z jaką przychodzi nauczenie się tego języka, sprawiła, że używają go setki tysięcy amatorów i profesjonalistów na całym świecie.
Po pewnym czasie wiedza wyniesiona z podręczników opisujących podstawy PHP języka przestaje wystarczać. Niniejsza książka pomoże Ci w wykonaniu kolejnego kroku: kroku w kierunku pisania zaawansowanych aplikacji. Dzięki niej wzbogacisz swoją wiedzę i staniesz się prawdziwym ekspertem programowania w PHP, poszukiwanym na rynku pracy.
* Poznasz tajniki programowania obiektowego.
* Nauczysz się korzystać z baz danych.
* Dowiesz się, w jaki sposób zabezpieczać stworzone przez siebie aplikacje.
* Napiszesz własny sklep internetowy, korzystając z sesji i bazy SQL.
* Poznasz sposoby uruchamiania programów PHP w oderwaniu od serwera WWW.
* Nauczysz się generować nie tylko strony WWW, ale także grafikę i pliki PDF.
* Dowiesz się, jak i po co używać języka XML.
* Skorzystasz z wielu rozszerzeń języka, które ułatwiają rozwiązywanie złożonych problemów.
Pomoże Ci w tym prosty język w jakim napisana jest książka oraz liczne przykłady kodu, a także osoba autora, doświadczonego programisty i wykładowcy PHP na Uniwersytecie Kalifornijskim w Berkeley.
Twórz bezpieczne i wydajne aplikacje wielowątkowe
Chcesz podnieść wydajność swoich aplikacji? Planujesz stworzenie systemu, który będzie uruchamiany na maszynach wyposażonych w procesory wielordzeniowe? A może próbowałeś już tworzyć aplikacje wielowątkowe, ale zniechęciłeś się po wielogodzinnych poszukiwaniach przyczyn błędów, które pojawiają się przy wysokich obciążeniach? Java niemal od początku swego istnienia jest wyposażona w mechanizmy umożliwiające tworzenie aplikacji wielowątkowych, lecz dopiero wersja 5. wniosła zupełnie nową jakość, dzięki wielu poprawkom zwiększającym wydajność maszyny wirtualnej oraz dodatkowym klasom ułatwiającym osiąganie lepszej współbieżności.
W książce "Java. Współbieżność dla praktyków" znajdziesz wyczerpujący opis metod projektowania i tworzenia aplikacji wielowątkowych. Przeczytasz nie tylko o klasach, ich działaniu i sposobach wykorzystania, ale również poznasz wzorce projektowe, praktyki programistyczne i modele, dzięki którym programowanie współbieżne jest łatwiejsze. Znajdziesz tu praktyczne aspekty oraz przykłady tworzenia pewnych, skalowalnych i łatwych w konserwacji aplikacji współbieżnych. Dowiesz się także, w jaki sposób testować aplikacje wielowątkowe, wynajdywać w nich błędy i usuwać je.
Dzięki książce poznasz:
* Możliwości wykorzystania wątków
* Podstawy stosowania wątków
* Współdzielenie obiektów
* Struktura aplikacji wielowątkowych
* Zarządzanie wątkami i zadaniami
* Zastosowania pul wątków
* Optymalizowanie wydajności
* Skalowalność aplikacji wielowątkowych
* Testowanie aplikacji współbieżnych
* Model pamięci Javy
* Tworzenie własnych synchronizatorów
Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i EclipseWydawnictwo Helion
Tworzenie zaawansowanych projektów korporacyjnych w Javie
* Poznaj sprawdzone metodologie i procesy
* Naucz się stosować praktyczne technologie i narzędzia
* Twórz w Javie kompletne rozwiązania w optymalny sposób
Chciałbyś tworzyć rozbudowane aplikacje w języku Java szybciej i w prostszy sposób? Liczne narzędzia i technologie budowania programów w Javie często ułatwiają wykonywanie niektórych zadań, ale jednocześnie niepotrzebnie komplikują i wydłużają proces powstawania gotowych produktów. Jak dobrać odpowiednie techniki i zastosować metodologię, która usprawni i przyspieszy pracę? Niektórzy już to wiedzą -- Ty też możesz skorzystać z ich doświadczeń!
"Java. Tworzenie aplikacji sieciowych za pomocą Spring, Hibernate i Eclipse" to praktyczny poradnik opisujący wydajną i sprawdzoną metodologię szybkiego pisania oprogramowania w języku Java. Dzięki tej książce poznasz techniki programowania ekstremalnego oraz metodologii Agile i nauczysz się stosować je podczas pracy nad programami. Dowiesz się, jak zaprojektować aplikację, przygotować środowisko i korzystać z wiersza poleceń oraz proponowanego zestawu narzędzi -- platformy Spring, mechanizmu odwzorowań Hibernate i IDE Eclipse -- co pozwoli Ci w prosty sposób użyć zaawansowanych rozwiązań.
* Techniki programowania ekstremalnego (XP)
* Wprowadzenie do metodologii Agile
* Korzystanie z platformy Spring
* Utrwalanie obiektów za pomocą Hibernate
* Praca w IDE Eclipse
* Debugowanie oprogramowania
* Monitorowanie i profilowanie aplikacji
* Refaktoryzacja kodu
Zwiększ swą wydajność dzięki zastosowaniu efektywnych procesów i narzędzi do tworzenia oprogramowania w języku Java.
Techniki implementacji wydajnych mechanizmów zarządzania zasobami
* Pozyskiwanie zasobów
* Wykorzystywanie zasobów
* Zwalnianie zasobów
Efektywne zarządzanie zasobami ma kluczowe znaczenie dla funkcjonowania oprogramowania. Niezależnie od tego, czy są to małe systemy instalowane w urządzeniach przenośnych, czy rozbudowane aplikacje korporacyjne, musimy mieć pewność, że pamięć, wątki, pliki i połączenia sieciowe są zarządzane w sposób, który zapewnia właściwe i wydajne działanie systemu. Konieczność stosowania efektywnych metod zarządzania zasobami zbyt często jest odkrywana w późnych fazach projektów informatycznych. Wprowadzanie zmian jest wtedy trudne i kosztowne.
Książka "Zarządzanie zasobami. Wzorce projektowe" przedstawia metody implementacji efektywnych mechanizmów zarządzania zasobami w systemach informatycznych. Wzorce przydzielono do trzech grup odpowiadających naturalnemu cyklowi życia zasobów. Każdy wzorzec został zilustrowany przykładem. Książka zawiera również dwa studia przypadków, które opisują możliwości stosowania przedstawionych wzorców w sieciach komputerowych.
* Przegląd technik zarządzania zasobami
* Stosowanie wzorców projektowych
* Wzorce pozyskiwania zasobów
* Wzorce zarządzania zasobami
* Wzorce zwalniania zasobów
Dzięki zawartym w tej książce wiadomościom stworzysz wydajniejsze oprogramowanie.
Opanuj język programowania, który zmienił oblicze sieci
* Jakie elementy tworzą język Java?
* Jak wykorzystać pełnię możliwości programowania obiektowego?
* Jak tworzyć własne aplety i aplikacje?
Interesuje Cię język programowania, który zyskuje coraz większą popularność wśród twórców rozwiązań korporacyjnych? A może zamierzasz tworzyć aplikacje dla urządzeń mobilnych? Najwyższa pora poznać tajniki Javy. Ten język już dawno przestał być narzędziem do tworzenia prostych programików osadzanych na stronach WWW. Współczesna Java to potężny obiektowy język programowania wykorzystywany w aplikacjach bankowych i finansowych, portalach internetowych i wielu innych systemach. Jedna z jego wersji służy także do pisania oprogramowania dla telefonów komórkowych, terminali BlackBerry i komputerów przenośnych. Warto więc poznać Javę.
"Praktyczny kurs Java. Wydanie II" to kolejna edycja podręcznika, dzięki któremu poznasz tajniki tego niezwykłego języka programowania. Znajdziesz tu omówienie elementów najnowszej wersji Javy, słów kluczowych tego języka, konstrukcji sterujących i zasad programowania. Dowiesz się, na czym polega projektowanie i programowanie obiektowe. Nauczysz się korzystać z mechanizmów obsługi wyjątków, implementować w programach operacje wejścia i wyjścia oraz budować własne aplikacje i aplety.
* Instalacja Javy w Windows i Linuksie
* Instrukcje Javy
* Operacje na tablicach
* Podstawy programowania obiektowego
* Obsługa wyjątków
* Zaawansowane zagadnienia programowania obiektowego
* Operacje wejścia i wyjścia
* Obsługa myszy i klawiatury
* Tworzenie interfejsów użytkownika
* Korzystanie z komponentów
Zostań profesjonalnym programistą Javy.
Zwięzły przewodnik opisujący najczęściej używane instrukcje języka Java
* Naucz się kompilować i uruchamiać programy w Javie
* Poznaj najpopularniejsze polecenia tego języka
* Pisz programy działające na wielu platformach
Już od wielu lat Java jest jednym z najpopularniejszych języków programowania, a znający ją programiści są poszukiwani i cenieni na rynku pracy. Jej atrakcyjność wynika głównie z tego, że kod napisany w tym języku można uruchamiać na wielu platformach, włączając w to różne systemy operacyjne, a także urządzenia przenośne, na przykład telefony komórkowe. Prosty jest także dostęp do wielu narzędzi oraz bezpłatnych bibliotek ułatwiających programowanie w Javie. Ponadto język ten otwiera wielkie możliwości w zakresie tworzenia aplikacji sieciowych.
"Java. Rozmówki" przedstawia skuteczne rozwiązania najczęściej występujących problemów i pomoże Ci błyskawicznie rozpocząć programowanie w tym języku. Dowiesz się, jak kompilować i uruchamiać programy w Javie. Nauczysz się manipulować ciągami, strukturami danych i datami oraz stosować wyrażenia regularne. Poznasz operacje wejścia i wyjścia, a także sposoby pracy z katalogami i plikami. Przeczytasz o aplikacjach sieciowych działających zarówno po stronie klienta, jak i po stronie serwera. Opanujesz efektywne techniki pracy z bazami danych i korzystanie z formatu XML.
* Kompilowanie i uruchamianie programów w Javie
* Współpraca ze środowiskiem
* Obsługa ciągów i liczb
* Korzystanie ze struktur danych
* Operacje wejścia i wyjścia
* Manipulowanie plikami i katalogami
* Praca z klientami i serwerami sieciowymi
* Komunikacja z bazami danych i używanie XML
* Programowanie wielowątkowe
Dzięki treściwym rozmówkom błyskawicznie poznasz praktyczne podstawy programowania w Javie.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Przyspiesz tworzenie aplikacji w Javie
* Uprość określanie zależności pomiędzy klasami
* Zastosuj narzędzie Hibernate do usprawnienia komunikacji z bazami danych
* Wykorzystaj możliwości programowania aspektowego
Technologia J2EE miała w założeniu być prosta i szybka w użytkowaniu. Praktyka jednak okazała się daleka od teorii. Mozolne tworzenie aplikacji wykorzystujących dziesiątki interfejsów połączonych wzajemnymi zależnościami, setki deskryptorów wdrożenia oraz plików pomocniczych spowodowało, że zaczęto poszukiwać rozwiązań alternatywnych. Jednym z nich okazał się framework Spring, zyskujący coraz większą popularność wśród programistów Javy. Spring jest znacznie dużo prostszy od wielu alternatywnych rozwiązań J2EE, znacznie ułatwia testowanie aplikacji, i pozwala na usuwanie zależności z kodu oraz oddzielanie ich od serwera aplikacji. Spring umożliwia również wykorzystanie programowania aspektowego.
Książka "Spring. Zapiski programisty" to praktyczny przewodnik po możliwościach tego środowiska. Jeśli wolisz poznawać nowe zagadnienia w sposób praktyczny, a nie wertując setki stron zapełnionych teoretycznymi wywodami, to ta książka jest właśnie dla Ciebie. Znajdziesz w niej omówienie zagadnień związanych z samym Springiem, współpracującymi z nim narzędziami i sposobami wykorzystania ich w procesie tworzenia aplikacji J2EE -- począwszy do graficznego interfejsu użytkownika i interfejsu sieciowego, a skończywszy na dostępie do relacyjnych baz danych.
* Tworzenie klas z zastosowaniem zależności
* Budowanie interfejsu użytkownika
* Integrowanie JSF z frameworkiem Spring
* Dostęp do baz danych za pomocą JDBC
* Odwzorowanie baz danych na obiekty za pomocą Hibernaete
* Obsługa i zabezpieczanie transakcji
* Wysyłanie i odbieranie wiadomości e-mail
Jeśli poszukujesz wydajniejszych metod tworzenia aplikacji J2EE, wykorzystaj możliwości frameworka Spring. Dzięki tej książce poznasz je wszystkie.
Choć Java to język gwarantujący efektywną pracę, to jednak kryje w sobie wiele pułapek, które mogą zniweczyć jej efekty. Książka ta ma za zadanie oszczędzić Twój czas i zapobiec frustracji przeprowadzając Cię bezpiecznie przez skomplikowane zagadnienia. Zespół ekspertów od języka Java pod wodzą guru programowania w osobie Michaela Daconta proponuje Ci zestaw sprawdzonych rozwiązań 50 trudnych problemów pojawiających się w praktyce każdego programisty. Rozwiązania te pozwolą Ci uniknąć problemów wynikających z niedostatków języka Java oraz jego interfejsów programowych, w tym pakietów java.util, java.io, java.awt i javax.swing. Autorzy dzielą się także z Czytelnikiem swoimi sposobami na poprawę wydajności aplikacji pisanych w Javie.
Oto niektóre z omawianych zagadnień:
* Składnia języka: zastosowanie metody equals() zamiast operatora == do porównywania obiektów klasy String
* Funkcjonalność wbudowana w język: rozdział metod a mechanizm refleksji, interfejsy i klasy anonimowe
* Użyteczne klasy i kolekcje: wybór klasy PropertyFile i ResourceBundle
* Wejście i wyjście, w tym subtelności związane z przesyłaniem serializowanych obiektów za pomocą gniazd sieciowych
* Graficzny interfejs użytkownika: sposoby uniknięcia typowej pułapki polegającej na zastosowaniu metody repaint() zamiast metody validate() w celu uzyskania nowego układu komponentów
* Graficzny interfejs użytkownika -- sterowanie: m.in. bardziej funkcjonalna kontrola danych wprowadzanych przez użytkownika
* Wydajność: m.in. zastosowanie odroczonego ładowania, tak by zwiększyć szybkość uruchamiania programów
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwletów i JSP.
* Jak kontrolować działanie aplikacji za pośrednictwem pliku deskryptora?
* Jakie są możliwości rozbudowy systemu zabezpieczeń?
* Jak można wykorzystać obsługę zdarzeń?
Platforma Java 2 jest najczęściej wykorzystywaną technologią do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usług sieciowych. Jej podstawą są serwlety i strony JSP, które są obsługiwane — przy użyciu komponentów wbudowanych lub dodatkowych — na praktycznie wszystkich serwerach WWW, a jednocześnie stanowią połączenie między klientami internetowymi i aplikacjami działającymi na serwerze.
Tom II prezentuje zaawansowane narzędzia i techniki służące do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli działania aplikacji za pomocą pliku web.xml, możliwości rozszerzenia systemu zabezpieczeń metodami deklaratywnymi i programistycznymi, a także sposoby używania filtrów serwletów i JSP. Przedstawiono tu także opis funkcji rzadziej używanych, lecz niezwykle przydatnych podczas tworzenia złożonych programów.
Książka „Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie” to wyczerpujący podręcznik dla programistów znających już podstawy technologiczne serwletów i stron JSP, którzy chcą poznać i wykorzystać ich zaawansowane możliwości.
Tom I zawiera szczegółowy opis serwletów i stron JSP, w tym nagłówki HTTP, pliki cookie, mechanizm śledzenia sesji, elementy skryptowe JSP, dołączanie plików, architekturę Model-Widok-Kontroler (MVC) i język wyrażeń JSP. Znajdziesz tam także opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.
Wykorzystaj wszystkie możliwości serwletów i stron JSP, aby tworzyć profesjonalne aplikacje!
* Deskryptor wdrożenia
* Zabezpieczenia programistyczne i deklaratywne
* Filtry serwletów i stron JSP
* Model i obsługa zdarzeń
* Własne biblioteki znaczników
* Platforma Apache Struts
Niezastąpiona pomoc dla użytkowników Linuksa
Linux staje się coraz popularniejszy i rozwija się coraz bardziej dynamicznie, wypierając w wielu miejscach komercyjne systemy operacyjne. Powstaje dla niego coraz więcej aplikacji. Graficzne środowiska pracy, takie jak GNOME czy KDE coraz częściej wypierają tryb tekstowy Linuksa. Nadal jednak większość zadań związanych z administracją systemem i dostępem do systemu plików wykonuje się za pomocą poleceń wydawanych w trybie tekstowym. Jednocześnie to właśnie polecenia są tym elementem Linuksa, który odstrasza od niego wielu potencjalnych użytkowników.
"Linux. Leksykon kieszonkowy" to książka dla tych, których do Linuksa zniechęca konieczność zapamiętania niezliczonej ilości poleceń i parametrów oraz dla tych, którzy pracują z nim na co dzień i potrzebują podręcznej „ściągi” przydatnej przy pracy. Zawiera zestawienie najbardziej przydatnych i potrzebnych w codziennej pracy poleceń systemu Fedora Linux, pogrupowanych według realizowanych przez nie funkcji, lecz większość zawartych w niej informacji będzie przydatna również użytkownikom innych dystrybucji Linuksa. Przedstawia również opcje i argumenty każdego z opisywanych poleceń.
* Korzystanie z systemu plików
* Funkcje powłoki bash
* Instalowanie nowego oprogramowania
* Operacje na plikach
* Obsługa kont użytkowników
* Korzystanie z internetu
* Programowanie skryptów powłoki
Środowisko programistyczne Delphi jest od dawna jednym z najpopularniejszych narzędzi stosowanych przez twórców aplikacji. Każda z jego wersji wnosiła wiele nowości, jednak wersja oznaczona symbolem 2005 to prawdziwy przełom. Umożliwia ona bowiem projektowanie aplikacji przeznaczonych dla platformy .NET, co otwiera przez programistami tysiące nowych możliwości. Mogą wykorzystywać bibliotekę klas FCL, tworzyć aplikacje nie tylko w znanym z poprzednich wersji Delphi języku Object Pascal, ale również w zyskującym coraz większą popularność języku C#, a także stosować w swoich programach klasy i obiekty napisane w dowolnym języku zgodnym z platformą .NET. Delphi 2005 to prawdziwa rewolucja.
Książka "Delphi 2005" wyczerpująco omawia najnowszą wersję tego środowiska programistycznego. Przedstawia jego możliwości i ich praktyczne zastosowanie. Szczegółowo opisuje zagadnienia podstawowe, takie jak praca z interfejsem użytkownika i stosowanie komponentów oraz tematy zaawansowane związane z tworzeniem aplikacji bazodanowych, korzystaniem z klas i obiektów specyficznych dla platformy .NET oraz pisaniem własnych komponentów.
* Korzystanie z elementów interfejsu użytkownika
* Zarządzanie plikami projektu
* Biblioteka klas .NET
* Przetwarzanie plików XML
* Zasady programowania obiektowego w Object Pascal
* Tworzenie aplikacji z wykorzystaniem biblioteki VCL.NET
* Połączenia z bazą danych za pomocą ADO.NET
* Zasady tworzenia własnych komponentów
Dzięki tej książce poznasz wszystkie możliwości najnowszej wersji Delphi.
Poznaj język programowania Flasha
i tchnij życie w projekty stron WWW
* Jak dostosować wygląd komponentów Flasha do stylu aplikacji?
* Jak tworzyć płynne i efektowne animacje, zmieniając szybkość odtwarzania klatek?
* Jak budować dynamiczne, interaktywne strony WWW za pomocą ActionScript 2.0?
Jesteś użytkownikiem Flasha? Uważasz, że wiesz już wszystko o jego narzędziach graficznych i animacyjnych? A może Twoja wyobraźnia podsuwa Ci pomysły, których realizacja wydaje się niemożliwa? Dodaj do swojego warsztatu znajomość ActionScript 2.0, języka programowania wykorzystywanego we Flashu. Stosując go, nadasz nową jakość swoim projektom. Przekonasz się, że to, co było niemożliwe do wykonania za pomocą narzędzi rysunkowych, stanie się dziecinnie łatwe dzięki ActionScript 2.0. Będziesz mógł kontrolować niemal każdy parametr wszystkich obiektów w prezentacji, pobierać dane z zewnętrznych źródeł, sterować szybkością odtwarzania filmu i wykonywać wiele innych zadań.
"ActionScript 2.0. Od podstaw" to książka będąca wprowadzeniem do programowania w tym języku. Czytając ją, poznasz środowisko programistyczne Flasha i podstawy języka ActionScript. Dowiesz się, czym jest programowanie obiektowe i w jaki sposób korzystać z jego możliwości. Nauczysz się przy użyciu ActionScript kontrolować wartości parametrów klipów filmowych na scenie, sterować ich zachowaniem oraz tworzyć nowe obiekty. Przeczytasz o wstawianiu do prezentacji materiałów graficznych i dźwiękowych pochodzących z zewnętrznych źródeł, danych tekstowych, a także opanujesz sterowanie odtwarzaniem animacji. Znajdziesz tu również informacje o wyszukiwaniu i usuwaniu błędów w kodzie.
* Zadania panelu Actions
* Podstawowe elementy języka ActionScript
* Programowanie obiektowe
* Projektowanie aplikacji we Flashu
* Sterowanie klipami filmowymi
* Korzystanie z komponentów
* Tworzenie elementów interaktywnych
* Praca z tekstem
* Wstawianie do prezentacji elementów multimedialnych
* Dynamiczne tworzenie elementów graficznych
* Przetwarzanie plików XML
* Komunikacja z serwerem i przeglądarką
Pracujesz we Flashu? Wzbogać swoje projekty
o możliwości, jakie daje Ci ActionScript.
* Jak wykorzystać strumienie?
* Jak stworzyć efektowny interfejs użytkownika?
* Jak zapewnić bezpieczeństwo w tworzonych aplikacjach?
Co spowodowało, że język programowania Java zyskał tak wielką popularność? Przyczyn jest kilka: możliwość przenoszenia kodu między programami, wydajność i to, co programiści lubią najbardziej - mechanizm automatycznego oczyszczania pamięci. Nie bez znaczenia jest również to, że Java jest językiem zorientowanym obiektowo, udostępnia obsługę programowania rozproszonego oraz świetną dokumentację. Ponadto liczne publikacje oraz pomocna społeczność sprawiają, że Java zajmuje poczesne miejsce wśród innych języków programowania.
Kolejne wydanie książki "Java. Techniki zaawansowane. Wydanie VIII" zostało zaktualizowane o wszystkie te elementy, które pojawiły się w wersji szóstej platformy Java Standard Edition. Dzięki tej książce dowiesz się, w jaki sposób wykorzystać strumienie, jak parsować dokumenty XML czy też w jaki sposób tworzyć aplikacje sieciowe. Poznasz interfejs JDBC, sposób wykorzystania transakcji oraz wykonywania zapytań SQL. Autorzy w szczegółowy sposób pokażą Ci, jak tworzyć aplikacje z wykorzystaniem biblioteki Swing. Dodatkowo przedstawią, w jaki sposób zapewnić bezpieczeństwo w tworzonych przez Ciebie aplikacjach. Wszystkie te - oraz wiele innych - zagadnienia zostaną przedstawione w przystępny i sprawdzony sposób!
* Wykorzystanie strumieni
* Dokumenty XML i ich wykorzystanie w języku Java
* Programowanie aplikacji sieciowych
* Wykorzystanie interfejsu JDBC
* Tworzenie aplikacji wielojęzycznych
* Możliwości pakietu Swing
* Wykorzystanie biblioteki AWT
* Bezpieczeństwo w aplikacjach
* Zastosowanie podpisu cyfrowego
* Sposoby wykorzystania obiektów rozproszonych (RMI)
Wykorzystaj zaawansowane możliwości języka Java w swoich projektach!
Stwórz własne aplikacje dla systemu Windows
* Jak pracować ze środowiskiem programistycznym Delphi?
* W jaki sposób tworzyć biblioteki DLL?
* Jak zaprojektować wydajną bazę danych?
* Jak tworzyć aplikacje operujące na bazach danych?
Wśród wszystkich środowisk programistycznych umożliwiających tworzenie aplikacji Delphi jest jednym z najbardziej znanych i popularnych. To narzędzie, obecne na rynku od ponad dwunastu lat, cieszy się zasłużonym uznaniem twórców oprogramowania — dzięki sporym możliwościom, ogromnej bibliotece komponentów i czytelnej składni języka Object Pascal, będącego podstawą tego środowiska. Najnowsza wersja Delphi, oznaczona symbolem RAD Studio 2007, nie tylko umożliwia tworzenie „klasycznych” aplikacji dla Windows, opartych o Windows API, ale także udostępnia kontrolki platformy .NET.
Książka „Delphi 2007 dla WIN32 i bazy danych” to podręcznik opisujący zasady tworzenia aplikacji dla systemu Windows w najnowszej wersji Delphi. Przedstawia ona techniki tworzenia aplikacji bazodanowych w oparciu o mechanizmy Windows API i kontrolki VCL. Czytając ją, poznasz komponenty, jakie Delphi oferuje programiście, i dowiesz się, jak korzystać z nich we własnych aplikacjach. Opanujesz mechanizmy komunikacji z niemal wszystkimi systemami zarządzania bazami danych dostępnymi na rynku. Przeczytasz także o tworzeniu wersji instalacyjnych napisanych przez siebie aplikacji.
* Interfejs użytkownika Delphi 2007
* Komponenty dostępne w Delphi
* Przetwarzanie grafiki
* Korzystanie z komponentów VCL
* Aplikacje wielowątkowe
* Tworzenie bibliotek DLL
* Operacje na plikach
* Obsługa dokumentów XML
* Projektowanie bazy danych i struktury tabel
* Komunikacja z bazami danych
* Mechanizmy blokowania rekordów
* Tworzenie wersji instalacyjnych aplikacji
Wykorzystaj możliwości najnowszej wersji środowiska programistycznego, które zrewolucjonizowało proces tworzenia aplikacji!
Język programowania PHP stanowi dla wielu osób przepustkę w świat pisania aplikacji działających po stronie serwera WWW. Łatwość z jaką przychodzi nauczenie się tego języka, sprawiła, że używają go setki tysięcy amatorów i profesjonalistów na całym świecie.
Po pewnym czasie wiedza wyniesiona z podręczników opisujących podstawy PHP języka przestaje wystarczać. Niniejsza książka pomoże Ci w wykonaniu kolejnego kroku: kroku w kierunku pisania zaawansowanych aplikacji. Dzięki niej wzbogacisz swoją wiedzę i staniesz się prawdziwym ekspertem programowania w PHP, poszukiwanym na rynku pracy.
* Poznasz tajniki programowania obiektowego.
* Nauczysz się korzystać z baz danych.
* Dowiesz się, w jaki sposób zabezpieczać stworzone przez siebie aplikacje.
* Napiszesz własny sklep internetowy, korzystając z sesji i bazy SQL.
* Poznasz sposoby uruchamiania programów PHP w oderwaniu od serwera WWW.
* Nauczysz się generować nie tylko strony WWW, ale także grafikę i pliki PDF.
* Dowiesz się, jak i po co używać języka XML.
* Skorzystasz z wielu rozszerzeń języka, które ułatwiają rozwiązywanie złożonych problemów.
Pomoże Ci w tym prosty język w jakim napisana jest książka oraz liczne przykłady kodu, a także osoba autora, doświadczonego programisty i wykładowcy PHP na Uniwersytecie Kalifornijskim w Berkeley.
Twórz bezpieczne i wydajne aplikacje wielowątkowe
Chcesz podnieść wydajność swoich aplikacji? Planujesz stworzenie systemu, który będzie uruchamiany na maszynach wyposażonych w procesory wielordzeniowe? A może próbowałeś już tworzyć aplikacje wielowątkowe, ale zniechęciłeś się po wielogodzinnych poszukiwaniach przyczyn błędów, które pojawiają się przy wysokich obciążeniach? Java niemal od początku swego istnienia jest wyposażona w mechanizmy umożliwiające tworzenie aplikacji wielowątkowych, lecz dopiero wersja 5. wniosła zupełnie nową jakość, dzięki wielu poprawkom zwiększającym wydajność maszyny wirtualnej oraz dodatkowym klasom ułatwiającym osiąganie lepszej współbieżności.
W książce "Java. Współbieżność dla praktyków" znajdziesz wyczerpujący opis metod projektowania i tworzenia aplikacji wielowątkowych. Przeczytasz nie tylko o klasach, ich działaniu i sposobach wykorzystania, ale również poznasz wzorce projektowe, praktyki programistyczne i modele, dzięki którym programowanie współbieżne jest łatwiejsze. Znajdziesz tu praktyczne aspekty oraz przykłady tworzenia pewnych, skalowalnych i łatwych w konserwacji aplikacji współbieżnych. Dowiesz się także, w jaki sposób testować aplikacje wielowątkowe, wynajdywać w nich błędy i usuwać je.
Dzięki książce poznasz:
* Możliwości wykorzystania wątków
* Podstawy stosowania wątków
* Współdzielenie obiektów
* Struktura aplikacji wielowątkowych
* Zarządzanie wątkami i zadaniami
* Zastosowania pul wątków
* Optymalizowanie wydajności
* Skalowalność aplikacji wielowątkowych
* Testowanie aplikacji współbieżnych
* Model pamięci Javy
* Tworzenie własnych synchronizatorów
Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i EclipseWydawnictwo Helion
Tworzenie zaawansowanych projektów korporacyjnych w Javie
* Poznaj sprawdzone metodologie i procesy
* Naucz się stosować praktyczne technologie i narzędzia
* Twórz w Javie kompletne rozwiązania w optymalny sposób
Chciałbyś tworzyć rozbudowane aplikacje w języku Java szybciej i w prostszy sposób? Liczne narzędzia i technologie budowania programów w Javie często ułatwiają wykonywanie niektórych zadań, ale jednocześnie niepotrzebnie komplikują i wydłużają proces powstawania gotowych produktów. Jak dobrać odpowiednie techniki i zastosować metodologię, która usprawni i przyspieszy pracę? Niektórzy już to wiedzą -- Ty też możesz skorzystać z ich doświadczeń!
"Java. Tworzenie aplikacji sieciowych za pomocą Spring, Hibernate i Eclipse" to praktyczny poradnik opisujący wydajną i sprawdzoną metodologię szybkiego pisania oprogramowania w języku Java. Dzięki tej książce poznasz techniki programowania ekstremalnego oraz metodologii Agile i nauczysz się stosować je podczas pracy nad programami. Dowiesz się, jak zaprojektować aplikację, przygotować środowisko i korzystać z wiersza poleceń oraz proponowanego zestawu narzędzi -- platformy Spring, mechanizmu odwzorowań Hibernate i IDE Eclipse -- co pozwoli Ci w prosty sposób użyć zaawansowanych rozwiązań.
* Techniki programowania ekstremalnego (XP)
* Wprowadzenie do metodologii Agile
* Korzystanie z platformy Spring
* Utrwalanie obiektów za pomocą Hibernate
* Praca w IDE Eclipse
* Debugowanie oprogramowania
* Monitorowanie i profilowanie aplikacji
* Refaktoryzacja kodu
Zwiększ swą wydajność dzięki zastosowaniu efektywnych procesów i narzędzi do tworzenia oprogramowania w języku Java.
Techniki implementacji wydajnych mechanizmów zarządzania zasobami
* Pozyskiwanie zasobów
* Wykorzystywanie zasobów
* Zwalnianie zasobów
Efektywne zarządzanie zasobami ma kluczowe znaczenie dla funkcjonowania oprogramowania. Niezależnie od tego, czy są to małe systemy instalowane w urządzeniach przenośnych, czy rozbudowane aplikacje korporacyjne, musimy mieć pewność, że pamięć, wątki, pliki i połączenia sieciowe są zarządzane w sposób, który zapewnia właściwe i wydajne działanie systemu. Konieczność stosowania efektywnych metod zarządzania zasobami zbyt często jest odkrywana w późnych fazach projektów informatycznych. Wprowadzanie zmian jest wtedy trudne i kosztowne.
Książka "Zarządzanie zasobami. Wzorce projektowe" przedstawia metody implementacji efektywnych mechanizmów zarządzania zasobami w systemach informatycznych. Wzorce przydzielono do trzech grup odpowiadających naturalnemu cyklowi życia zasobów. Każdy wzorzec został zilustrowany przykładem. Książka zawiera również dwa studia przypadków, które opisują możliwości stosowania przedstawionych wzorców w sieciach komputerowych.
* Przegląd technik zarządzania zasobami
* Stosowanie wzorców projektowych
* Wzorce pozyskiwania zasobów
* Wzorce zarządzania zasobami
* Wzorce zwalniania zasobów
Dzięki zawartym w tej książce wiadomościom stworzysz wydajniejsze oprogramowanie.
Opanuj język programowania, który zmienił oblicze sieci
* Jakie elementy tworzą język Java?
* Jak wykorzystać pełnię możliwości programowania obiektowego?
* Jak tworzyć własne aplety i aplikacje?
Interesuje Cię język programowania, który zyskuje coraz większą popularność wśród twórców rozwiązań korporacyjnych? A może zamierzasz tworzyć aplikacje dla urządzeń mobilnych? Najwyższa pora poznać tajniki Javy. Ten język już dawno przestał być narzędziem do tworzenia prostych programików osadzanych na stronach WWW. Współczesna Java to potężny obiektowy język programowania wykorzystywany w aplikacjach bankowych i finansowych, portalach internetowych i wielu innych systemach. Jedna z jego wersji służy także do pisania oprogramowania dla telefonów komórkowych, terminali BlackBerry i komputerów przenośnych. Warto więc poznać Javę.
"Praktyczny kurs Java. Wydanie II" to kolejna edycja podręcznika, dzięki któremu poznasz tajniki tego niezwykłego języka programowania. Znajdziesz tu omówienie elementów najnowszej wersji Javy, słów kluczowych tego języka, konstrukcji sterujących i zasad programowania. Dowiesz się, na czym polega projektowanie i programowanie obiektowe. Nauczysz się korzystać z mechanizmów obsługi wyjątków, implementować w programach operacje wejścia i wyjścia oraz budować własne aplikacje i aplety.
* Instalacja Javy w Windows i Linuksie
* Instrukcje Javy
* Operacje na tablicach
* Podstawy programowania obiektowego
* Obsługa wyjątków
* Zaawansowane zagadnienia programowania obiektowego
* Operacje wejścia i wyjścia
* Obsługa myszy i klawiatury
* Tworzenie interfejsów użytkownika
* Korzystanie z komponentów
Zostań profesjonalnym programistą Javy.
Czytanie kodu. Punkt widzenia twórców oprogramowania open sourceWydawnictwo Helion
Książka "Czytanie kodu. Punkt widzenia twórców oprogramowania" open source to pierwszy na rynku podręcznik poświęcony czytaniu kodu źródłowego jako osobnej dziedzinie wiedzy, której znajomość jest przydatna każdemu programiście. Ponad 600 przykładów, w których wykorzystywane są kody oprogramowania open source , przedstawia sposoby identyfikowania dobrego i złego kodu, czytania go, przeszukiwania pod kątem konkretnych funkcji oraz wykorzystywania umiejętności czytania kodu do poprawy jakości kodów źródłowych pisanych samodzielnie.
* Podstawowe konstrukcje sterujące działaniem programu
* Proste i złożone typy danych
* Struktury i unie
* Dynamiczne zarządzanie pamięcią
* Metody analizy projektów informatycznych
* Konwencje pisania i formatowania kodu źródłowego
* Tworzenie i czytanie dokumentacji
* Architektura systemów
Poznaj umiejętność czytania kodu źródłowego i popraw samodzielnie pisany kod.
Kompletne i niezastąpione źródło wiedzy dla doświadczonych programistów
* Kolejne wydanie doskonałego przewodnika po zaawansowanych możliwościach Javy
* Wszystkie kody źródłowe w książce zaktualizowane do J2SE 5.0
* Szczegółowe omówienie wielowątkowości, kolekcji, programowania aplikacji sieciowych i bazodanowych, bezpieczeństwa i internacjonalizacji aplikacji, obiektów rozproszonych i języka XML
Kolejne już wydanie przewodnika opisującego zaawansowane i nieznane właściwości języka Java, tym razem w wersji 5.0, to kompendium wiedzy dla wszystkich programistów zamierzających tworzyć rozbudowane aplikacje. Nowa wersja języka Java to nie tylko nowy numer -- to przede wszystkim ogromna ilość nowych funkcji i możliwości, klas i obiektów. W JDK 5.0 wprowadzono nowe mechanizmy obsługi wątków i kolekcji, rozszerzono możliwości biblioteki Swing i klas wykorzystywanych do tworzenia aplikacji bazodanowych i sieciowych. "Java 2. Techniki zaawansowane. Wydanie II" przedstawia i opisuje wszystkie te nowości.
Wszystkie przykładowe programy zostały zaktualizowane do najnowszej wersji Javy i przedstawiają praktyczne rozwiązania rzeczywistych problemów, z jakimi może spotkać się twórca aplikacji w języku Java.
Książka zawiera wiele nowych podrozdziałów poświęconych nowościom wprowadzonym w J2SE 5.0. Dokładnie i na przykładach opisuje zagadnienia związane z wielowątkowością, kolekcjami, metadanymi, stosowaniem języka XML, komunikacją z bazami danych i wieloma innymi elementami zaawansowanego programowania w Javie.
* Aplikacje wielowątkowe
* Kolekcje i operacje na nich
* Połączenia sieciowe
* Interfejs JDBC i LDAP
* Aplikacje rozproszone
* Technologia CORBA
* Zaawansowane możliwości bibliotek Swing i AWT
* Technologia JavaBeans
* Bezpieczeństwo aplikacji
* Internacjonalizacja
* Korzystanie z języka XML
Jeśli zamierzasz wykorzystać Javę w złożonym projekcie informatycznym, ta książka będzie dla Ciebie niezastąpiona.
* Obszerny przewodnik po języku Java -- zaktualizowany dla wersji JDK 1.3
* Pełne omówienie środowiska programowania zorientowanego obiektowo oraz klas Swing
* Więcej przykładowch kodów przydatnych profesjonalnym programistom
* CD-ROM zawiera kod źródłowy wszystkich programów, J2SE w wersji 1.3, Forte™ -- Java Community Edition i wiele więcej!
Pięć wydań w USA, pierwsze wydanie w Polsce!
"Java 2. Podstawy” jest najlepszą książką dla programistów. Nie ma sobie równych pod względem ilości przekazanych informacji, a mimo to pozostaje bardzo czytelna. -- K. N. King, Computer Reviews
Programiści znajdą tu wszystko, czego potrzeba, aby wykorzystać potęgę języka Java… -- PC Week
"Java 2. Podstawy" dostarcza wszystkiego, czego potrzebujesz, aby ukończyć nawet najbardziej skomplikowane projekty. Dlatego właśnie ta książka przez pięć lat była międzynarodowym bestsellerem. "Java 2. Podstawy" omawia podstawy platformy Java 2 Standard Edition w wersji 1.3, zawiera pełny opis zorientowanego obiektowo środowiska programistycznego Javy, komponentów interfejsu użytkownika Swing i wiele, wiele więcej.
Piąta wydanie prezentuje wiele nowych, gotowych do zastosowania programów, z których zasłynęły poprzednie edycje tej książki: pojawiły się również nowe programy dotyczące mechanizmu odbicia oraz optymalizacji kodu. Szczegółowo wyjaśniono koncepcję klas wewnętrznych, funkcjonowanie proxy, obsługę wyjątków, techniki usuwania błędów, model zdarzeń Javy, interfejs wejścia/wyjścia oraz zarządzania plikami.
Kompendium dla programistów Javy, a w nim:
* Omówienie języka Java i tworzenia aplikacji w środowisku Forte(tm)
* Tworzenie aplikacji GUI przy pomocy nowych klas Swing
* Sposoby pisania klas proxy i klas wewnętrznych
* Korzystanie z modelu zdarzeń Javy
* Omówienie klas strumieni oraz mechanizmu zarządzania plikami
To idealna książka dla profesjonalnych programistów, którzy chcą nauczyć się Javy i wykorzystać ją w swojej pracy zawodowej. Zawiera CD-ROM z kodem źródłowy wszystkich przykładów, Forte ™ -- Java Community Edition (zintegrowane środowisko programistyczne Javy) oraz wersje testowe wielu innych użytecznych programów.
Poznaj tajniki najpopularniejszego języka programowania
w erze Internetu
Chyba wszyscy użytkownicy internetu spotkali się z Javą, często nawet o tym nie wiedząc. W ciągu ostatnich 10 lat zyskała ona ogromną popularność, szczególnie wśród programistów aplikacji sieciowych. Jednakże kojarzenie jej z językiem przeznaczonym wyłącznie do tworzenia takich programów jest dużym błędem. Java to w pełni funkcjonalny i doskonale dopracowany język programowania, nadający się do tworzenia różnych aplikacji, a nie tylko apletów działających na stronach internetowych.
W Javie pisane są gry sieciowe, systemy bankowości elektronicznej, pakiety wspomagające sprzedaż i obsługę klienta, a nawet aplikacje działające w telefonach komórkowych i komputerach przenośnych. Podstawową zaletą języka Java jest przenośność kodu -- raz napisany program można uruchomić na każdym urządzeniu, na którym zainstalowane jest odpowiednie środowisko uruchomieniowe, zwane JRE.
Książka "Praktyczny kurs Java" przeznaczona jest dla osób rozpoczynających swoją przygodę z programowaniem w tym języku. Opisuje podstawy języka, zasady programowania obiektowego i tworzenia własnych apletów i aplikacji. Czytając kolejne rozdziały, dowiesz się:
* Jakie typy danych wykorzystywane są w Javie
* Jak deklarować zmienne i wyprowadzać ich wartości na ekran
* W jaki sposób sterować przebiegiem wykonywania programu
* Jakie zasady rządzą programowaniem obiektowym
* Czym są klasy, obiekty, argumenty i metody
* Co to są wyjątki i jak je obsługiwać w programie
* Jak wykorzystać zaawansowane techniki programowania obiektowego w swoich aplikacjach
* W jaki sposób uzyskiwać dostęp do systemu plików z poziomu swojej aplikacji
* Jak tworzyć aplety i samodzielne aplikacje
Zapoznaj się z podstawami programowania w Javie i naucz się zasad programowania obiektowego, a także dowiedz się, czym są wyjątki w Javie i stwórz własne aplety i aplikacje.
Active Directory jest złożoną bazą danych i nieodłącznym elementem architektury sieciowej Windows 2000. Pozwala organizacjom skutecznie udostępniać i zarządzać informacjami dotyczącymi zasobów sieciowych i użytkowników. Active Directory gra rolę węzła integrującego ze sobą systemy i pozwalającego na konsolidację zarządzania nimi. W niniejszej książce zawarliśmy doświadczenia nabyte przy implementacji AD:
* Planowanie instalacji AD w terminie i w ramach zaplanowanego budżetu.
* Interakcja AD z innymi usługami sieciowymi: DNS, DHCP, RIS, RRAS i WINS.
* Korzystanie z obiektów zasad grup, praw użytkownika, FSMO i mechanizmów delegowania kontroli.
* Unikanie pułapek w strategiach migracji korzystających z narzędzi migracji Active Directory.
* Administracyjne i polityczne aspekty migracji do AD
W książce Projektowanie struktur Active Directory ponadto znajdziemy:
* Przejrzysty opis AD.
* Wyjaśnienie, dlaczego udane wdrożenie Active Directory wymaga starannego zaplanowania.
* Kilka przykladów pomyślnych implementacji AD.
* Sposoby tworzenia solidnych podstaw dla planowania i implementacji Active Directory.
Windows Movie Maker dołączany do systemu Windows XP to doskonałe narzędzie do domowego montażu cyfrowych filmów wideo. Jest prosty w obsłudze, posiada spore możliwości, a montaż filmów za jego pomocą jest przyjemną zabawą. Movie Maker pozwala na przeniesienie klipów z kamery cyfrowej, zaimportowanie materiałów z dysku, rozmieszczenie ujęć i połączenie ich przejściami, a także udźwiękowienie i dodanie efektów specjalnych. Gotowy film można wysłać pocztą elektroniczną, zapisać na dysku lub płycie CD albo opublikować w internecie.
Książka "Tworzenie filmów w Windows XP. Projekty" przedstawia proces tworzenia filmu wideo. Opisuje kolejne kroki prowadzące do zmontowania cyfrowego filmu wideo z przechwyconych ujęć i zaimportowanych materiałów. Nie znajdziesz w niej jednak długich opisów i dziesiątek parametrów. Każde zagadnienie jest przedstawione za pomocą zrzutów ekranu i krótkich instrukcji. Dzięki temu w ciągu kilku godzin zrealizujesz swój pierwszy projekt w Movie Makerze.
* Elementy interfejsu użytkownika
* Przechwytywanie klipów z kamery wideo
* Import materiałów źródłowych
* Tworzenie wstępnego montażu
* Dodawanie przejść i efektów specjalnych
* Nakładanie plansz tytułowych i napisów
* Udźwiękowienie filmu
* Korzystanie z funkcji Autofilm
* Eksport zmontowanego filmu
Przekonaj się, jak proste może być tworzenie własnych filmów wideo.
Przedstaw się światu!
* Jak zbudować elegancką stronę z blogiem?
* Jak tworzyć wyspecjalizowane przeglądarki bloga?
* Jak dodawać do własnego serwisu blogowego kanał RSS?
Prowadzenie bloga to nowy sposób na zwiększenie aktywności społecznej - szansa na zaistnienie w rzeczywistości wirtualnej, mająca swoje odbicie w tak zwanym „prawdziwym życiu”. Dlatego blogi piszą dziś niemal wszyscy: politycy, marketingowcy, celebryci, biznesmeni. Forma publicznie dostępnego pamiętnika pozwala na szeroką prezentację własnych poglądów, przekonań czy wartości. Z tego powodu blogi wykorzystywane są też jako wortale poświęcone określonej tematyce, promujące idee lub produkty. Ich użytkownicy stworzyli nawet własną społeczność, która 31 sierpnia obchodzi swoje święto - Dzień Bloga. Już dziś możesz do nich dołączyć!
„Blog, więcej niż internetowy pamiętnik” to książka, która pokaże Ci, jak założyć i prowadzić własny blog, a także aktywnie korzystać z innych blogów. Dowiesz się z niej, jak skorzystać z oprogramowania obsługującego serwisy blogowe, jak zintegrować języki PHP, HTML, CSS i SQL, aby stworzyć elegancką stronę prezentującą Twój blog. Nauczysz się budować własną bazę danych, przeznaczoną do przechowywania wpisów, a także zabezpieczać ją przed niepowołanymi modyfikacjami. I wreszcie poznasz sposób na dodanie do własnego serwisu kanału RSS, aby czytelnicy na bieżąco mogli obserwować pojawianie się nowych wpisów. Znajdziesz tu wszystko, czego potrzebujesz, aby zaprezentować światu swój blog!
* Obsługa okna tworzenia bloga
* Modyfikowanie wyglądu bloga
* Publikowanie w określonym terminie
* Rozbudowa bloga
* Instalacja czytnika RSS
* Subskrybowanie blogów za pomocą RSS
* Instalacja oprogramowania własnego serwera
* Baza danych i modyfikacja danych
* Projektowanie struktury bloga
* Zakładanie konta użytkownika
* Zakładanie bazy danych i tabeli danych
* Nadawanie uprawnień do korzystania z tabeli
* Przygotowanie szablonu i tworzenie strony www
* Automatyzowanie, blokowanie i trwałe usuwanie wpisu
* Tworzenie formularza wyszukiwania
* Tworzenie kanału RSS i wypełnianie go treścią
* Pobieranie programu Weber
Blog to prosty i fascynujący sposób, aby świat dowiedział się o Twoim istnieniu!
Pakiet biurowy MS Office jest jednym z podstawowych narzędzi wykorzystywanych we współczesnych firmach. Zawarty w nim system zarządzania bazami danych Access to wygodna w obsłudze aplikacja służąca do operowania na zbiorach danych. Dzięki prostocie obsługi, sporym możliwościom i wizualnym narzędziom stanowi doskonałe rozwiązanie dla przedsiębiorstw, w których duże znaczenie ma czas poświęcany na opanowanie nowych programów. Kreatory i rozbudowany system pomocy oferowane przez Accessa niezwykle upraszczają proces tworzenia bazy oraz aplikacji przeznaczonych do obsługi zgromadzonych w niej danych.
W książce "Access w biurze i nie tylko" znajdziesz omówienie podstawowych możliwości tego systemu. Nauczysz się tworzyć i otwierać istniejące bazy danych oraz tworzyć nowe. Dowiesz się, w jaki sposób projektować tabele i jak dobierać typy danych dla poszczególnych kolumn tabeli. Przeczytasz o relacjach, poznasz sposoby wybierania i wstawiania danych, a także manipulowania nimi za pomocą kwerend. W kolejnych rozdziałach znajdziesz informacje o tworzeniu formularzy i raportów oraz wyświetlaniu wykresów na podstawie danych zgromadzonych w bazie. Nauczysz się także pisać własne makra i poznasz podstawy języka Visual Basic for Applications.
* Otwieranie istniejących baz danych
* Tworzenie tabel
* Typy danych
* Tworzenie i modyfikowanie relacji
* Manipulowanie danymi za pomocą kwerend
* Konstruowanie formularzy
* Budowanie raportów
* Automatyzacja pracy za pomocą makropoleceń
* Tworzenie i wyświetlanie wykresów
Dane to dziś najcenniejszy towar. Naucz się nim zarządzać.
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
Zapewnij swojej witrynie miejsce w pierwszej dziesiątce!
* Jak działają wyszukiwarki?
* Jaki wpływ na pozycję serwisu mają linki przychodzące i wychodzące?
* Czy istnieją zagrożenia związane z niewłaściwym pozycjonowaniem?
Stworzenie serwisu WWW to dopiero połowa sukcesu w Internecie. Druga połowa to zapewnienie witrynie odpowiedniej popularności. A tę popularność może zagwarantować przede wszystkim wysokie miejsce w wynikach wyszukiwarek. Jak to osiągnąć? Od czego zacząć i jak monitorować skuteczność prowadzonych działań? Wszystkie odpowiedzi znajdziesz właśnie w tej książce!
Poprzez liczne przykłady i ćwiczenia autorzy zapoznają Cię ze sposobem działania wyszukiwarki Google i zasadami doboru właściwych słów kluczowych. Pokażą, jak najlepiej rozmieścić je na stronie. Ponadto dowiesz się, jaki wpływ na pozycję strony mają linki wychodzące oraz przychodzące, jak przebiega proces indeksowania strony, jak działają systemy wymiany linków oraz jak wykorzystać statystyki do obserwacji ruchu na stronie. Przeczytasz także o tym, jakie zagrożenia niesie ze sobą niewłaściwa procedura pozycjonowania.
* Sposób działania Google oraz innych wyszukiwarek
* Definiowanie fraz i słów kluczowych
* Wpływ linków przychodzących i wychodzących na pozycję strony
* Korzystanie z systemów wymiany linków
* Proces indeksacji witryny
* Zagrożenia związane z niewłaściwym pozycjonowaniem
* Wykorzystanie statystyk do śledzenia ruchu na stronie
* Sposoby reklamowania serwisu
Zwiększ oglądalność swojej witryny WWW!
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
Lustereczko, powiedz przecie,
kto jest najwspanialszy w necie?
* Tworzenie i wykorzystywanie odpowiedniego wizerunku oraz zarabianie na nim
* Budowanie pożądanych marek bez wielkich nakładów finansowych
* Interaktywne relacje z klientami
* Wykorzystanie Internetu do rozwoju biznesu
* Narzędzia kreowania wizerunku w sieci
Jak Cię widzą (w sieci), tak Cię piszą
Internet jest nie tylko rewolucyjnym medium, pierwszym o naprawdę masowym zasięgu działania. Stanowi on przede wszystkim fascynujący alternatywny świat. Działa jak magnes, co roku przyciągając nowych użytkowników. Niczym używka, wciąż odnotowuje wydłużenie czasu kontaktu z odbiorcą. I last but not least — Internet to niekończący się pasaż handlowy, wymarzone miejsce spotkań podaży i popytu.
Poznaj specyfikę światowej sieci WWW i znajdź w niej właściwe miejsce dla Twojej marki. E-marketing rządzi się własnymi prawami — z jednej strony bezustannie stawia firmy przed nowymi wyzwaniami, z drugiej zaś stale kreuje nowe narzędzia dotarcia do klienta. A są one naprawdę fascynujące: możliwość dowolnej personalizacji przekazu, olbrzymia ilość kanałów, a przede wszystkim atrakcyjne społeczności — ludzie młodzi, aktywni, hobbyści, biznesmeni oraz entuzjaści nowinek. Mogą oni zostać ambasadorami Twojej marki, ale mogą też ją zniszczyć. Dlatego musisz poznać zasady rządzące Internetem i jego społecznościami, a następnie zacząć budować instrumenty wywierania wpływu i wykorzystać je dla dobra Twojego produktu.
Internet ma przyszłość!
* Czym jest e-wizerunek i jak wpływa na sukces firm, produktów i ludzi?
* Narzędzia budowania image’u — strona WWW, fora internetowe, newslettery i inne.
* Sześć zasad skutecznego kreowania e-wizerunku.
* Grzechy główne działań internetowych.
* Marka jako efekt przemyślanej strategii wizerunkowej.
* Case studies
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Rozpocznij przygodę z Visual C++!
* Jakie prawa rządzą programowaniem obiektowym?
* Jak tworzyć usługi systemowe?
* Jak dokumentować tworzony kod?
Microsoft Visual C++ jest zintegrowanym środowiskiem, pozwalającym na tworzenie aplikacji przy użyciu języków C, C++ lub C++/CLI. Zawiera ono wyspecjalizowane narzędzia, pomagające w wydajnym tworzeniu rozwiązań opartych o te języki. Pierwsza wersja Visual C++ została wydana w 1992 roku, a środowisko to jest bezustannie ulepszane. Najnowsze wydanie, z datą 2008, zostało opublikowane w listopadzie 2007 roku i wprowadziło wiele nowości — jak chociażby wsparcie dla technologii .NET 3.5. Niewątpliwie narzędzie firmowane przez giganta z Redmond jest jednym z najpopularniejszych, a używają go programiści z całego świata.
Dzięki tej książce również Ty możesz dołączyć do tego wybitnego grona. Po jej przeczytaniu będziesz miał wiedzę na temat środowiska programistycznego i platformy .NET. Poznasz podstawy programowania obiektowego, nauczysz się uzyskiwać dostęp do informacji zgromadzonych w bazach danych oraz korzystać z możliwości Internetu bezpośrednio w Twoich programach. Kolejne rozdziały przedstawiają interesujące tematy dotyczące obsługi wyjątków, programów wielowątkowych oraz sposobów tworzenia usług systemowych. Ostatni rozdział poświęcony został tak istotnej kwestii, jak dokumentowanie kodu — to czynność, o której wielu programistów zapomina. Jeżeli chcesz rozpocząć przygodę z Microsoft Visual C++, ta książka jest idealną lekturą dla Ciebie!
* Praca w zintegrowanym środowisku programistycznym
* Pojęcia związane z programowaniem obiektowym
* Uzyskiwanie dostępu do informacji zgromadzonych w bazach danych
* Wykorzystanie transakcji w pracy z danymi
* Sposoby integracji z siecią Internet
* Obsługa wyjątków
* Programowanie wielowątkowe
* Tworzenie grafiki oraz wykorzystanie multimediów
* Drukowanie w systemie Windows
* Tworzenie usług systemowych
* Dokumentowanie kodu programu
Wykorzystaj możliwości Microsoft Visual C++ 2008!
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
Poznaj możliwości iPhone’a!
* Jak rozpocząć pracę z iPhone’em?
* Jak wykorzystać możliwości przeglądarki Safari?
* Jak używać map?
Pojawienie się iPhone’a firmy Apple można bez wahania nazwać Rewolucją! Rewolucją przez duże "R". Nigdy wcześniej żaden nowy telefon nie wzbudził takich emocji. Nigdy wcześniej nie ustawiały się na wiele dni przed premierą kolejki pod salonami. Co sprawia, że ludzie szaleją za tym małym cudem techniki? Wielodotykowy (ang. multitouch) ekran, dostęp do tysięcy aplikacji, stabilny system operacyjny oraz elegancki, przykuwający uwagę wygląd to tylko niektóre z jego zalet.
Właśnie dzięki tej książce dowiesz się, co tak naprawdę potrafi Twój iPhone. Autor — niezawodny Scott Kelby — bez zbędnego zagłębiania się w szczegóły techniczne opowie Ci o możliwościach tego rewolucyjnego urządzenia. Zaprezentuje Ci m.in. sposoby wykonywania różnych operacji przy użyciu tego telefonu. Poznasz tajniki jego konfiguracji i synchronizacji z komputerem oraz metodę sprawdzania poziomu naładowania baterii. Nauczysz się wykorzystywać wszystkie możliwości przeglądarki Safari, czytnika poczty oraz terminarza. Dowiesz się również, jak odtwarzać klipy z YouTube, słuchać muzyki czy oglądać filmy. Książka ta jest zatem świetną pozycją zarówno dla początkującego użytkownika telefonu iPhone, jak również dla zaawansowanego — ten ostatni znajdzie tu informacje, które go zaskoczą i zachwycą! W końcu iPhone to zdolna i piękna bestia…
* Włączanie, usypianie, wyłączanie iPhone’a
* Wykorzystanie wbudowanego głośnika
* Obsługa ekranu
* Importowanie kontaktów
* Dodawanie numerów
* Połączenia konferencyjne
* Wyciszanie dzwonka
* Odbieranie i wysyłanie wiadomości e-mail
* Obsługa przeglądarki Safari
* Wykorzystanie kalendarza
* Odtwarzanie klipów z YouTube
* Używanie mapy
* Sprawdzanie prognozy pogody
* Importowanie i odtwarzanie muzyki
* Wykonywanie zdjęć
* Rozwiązywanie typowych problemów
Sprawdź, co potrafi Twój iPhone!
Uwiecznij świat, jakiego nie znałeś!
* Jaki sprzęt jest potrzebny do makrofotografii?
* Jak uzyskać duże powiększenia?
* Jak komponować efektowne zdjęcia?
Wiele osób nie zwraca uwagi na niepozorne, małe elementy otaczającego nas świata. Czyż nie warto pokazać im, co tracą? Wykonanie dobrego zdjęcia w skali makro to wyzwanie, ale zachwyt na twarzach oglądających jest wart wszelkich poświęceń. Właśnie dzięki makrofotografii można ujrzeć cudowny świat, niezauważalny na co dzień. Magiczny świat szczegółów!
Autor książki "Makrofotografia. Magia szczegółu " przedstawia ten temat w sposób przejrzysty i systematyczny. Dzięki tej publikacji zdobędziesz informacje dotyczące sprzętu potrzebnego do wykonania makrofotografii oraz sposobu kompozycji zdjęcia. Poznasz zagadnienia związane z właściwym doborem ostrości, a także takie pojęcia, jak głębia ostrości, długość ogniskowej, jasność obiektywu i wiele innych. Pozwolą Ci one na swobodne poruszanie się po świecie makrofotografii. Ponadto poszerzysz swoją wiedzę odnośnie doboru właściwego oświetlenia oraz programów odpowiednich do obróbki wykonanych zdjęć. Niewątpliwym atutem tej książki są pytania i zadania kontrolne, które pozwolą Ci zweryfikować zdobyte umiejętności. Jeżeli chcesz uwiecznić otoczenie w makrofotografii, ta pozycja będzie dla Ciebie nieocenionym źródłem informacji, a może nawet twórczej inspiracji!
* Sprzęt konieczny do wykonania makrofotografii
* Sposoby na uzyskanie dużych powiększeń
* Komponowanie zdjęć
* Zasady doboru kadru
* Uzyskiwanie właściwej ostrości
* Ograniczenia ostrości
* Dobór właściwego oświetlenia
* Metody pomiaru światła
* Doświetlanie zdjęć
* Narzędzia do edycji zdjęć
Odsłoń na fotografiach całe piękno szczegółu!
Naucz się korzystać z nowoczesnych narzędzi PowerShella
i usprawniaj żmudne zadania administracyjne!
* Jak skonfigurować środowisko PowerShella?
* Jak tworzyć aplety poleceń i jak ich używać?
* Jak korzystać z potoku danych?
Windows PowerShell to innowacyjne narzędzie do zarządzania systemem i przetwarzania skryptów dla serwerów oraz klientów pod kontrolą Windows. Charakterystyczną cechą tego interpretera poleceń jest obiektowa logika, która sprawia, że wynikiem każdego polecenia jest obiekt określonego typu. Dodatkowo wszystkie funkcje dostępne przez API systemu są możliwe do wywołania z poziomu PowerShella. Dzięki swojej uniwersalności oraz nowoczesnym narzędziom interpreter ten zapewnia spójny oraz jasny mechanizm zarządzania, oparty na wierszu poleceń i niewymagający od użytkownika dużej wiedzy programistycznej.
Książka "Windows PowerShell. Podstawy" zawiera dokładny opis innowacyjnej architektury PowerShella, zasad pisania skryptów oraz możliwości korzystania z podstawowych interfejsów systemowych: COM, WMI, ADSI i ADO.NET, a także obszerny zbiór opisów rozwiązań konkretnych zadań administracyjnych. Korzystając z tego przewodnika, poznasz funkcje i narzędzia PowerShella. Nauczysz się również korzystać z obiektowego potoku danych i zarządzać procesami, dziennikami zdarzeń oraz wpisami rejestru. Dzięki zawartej tu wiedzy z pewnością usprawnisz i zautomatyzujesz wszelkie czasochłonne zadania administracyjne, by móc swobodnie stosować PowerShell jako podstawową konsolę do codziennej pracy.
* Aplety poleceń
* Przetwarzanie potokowe
* Potoki danych
* Uniwersalny model nawigacji
* Definiowanie dysków
* Język skryptów PowerShella
* Tablice asocjacyjne
* Praca ze skryptami
* Różnicowanie reakcji na błędy
* Biblioteki klas
* Narzędzia PowerShella
* Zarządzanie użytkownikami i grupami w Active Directory
* Bazy danych
* Zaawansowane operacje dostępu do danych
PowerShell skróci czas Twojej pracy!
Poznaj specyfikę języka Java i zostań mistrzem programowania
* Jak korzystać z bibliotek języka Java?
* Jak pisać funkcjonalny i klarowny kod?
* Jak stworzyć profesjonalny i efektowny program?
Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią — podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.
W książce „Java. Efektywne programowanie” w sposób zrozumiały i klarowny przedstawiono zasady opisujące mechanizmy używane w najlepszych technikach programowania. Ten podręcznik podpowie Ci, jak najbardziej racjonalnie korzystać z języka Java oraz jego podstawowych bibliotek. Dowiesz się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania, poznasz także zalety stosowania statycznych klas składowych. Opanujesz metody sprawdzania poprawności parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolą Ci na wydajne i profesjonalne programowanie.
* Tworzenie i usuwanie obiektów
* Klasy i interfejsy
* Zapewnianie niezmienności obiektu
* Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
* Zalety stosowania statycznych klas składowych
* Typy ogólne
* Typy wyliczeniowe i adnotacje
* Metody
* Programowanie
* Wykorzystanie ogólnie przyjętych konwencji nazewnictwa
* Wyjątki
* Współbieżność i serializacja
* Dokumentowanie bezpieczeństwa dla wątków
Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!
Rozpocznij swoją przygodę z JavaScript!
* Jak rozpocząć przygodę z JavaScript?
* Jakie obiekty dostarcza JavaScript?
* Jak reagować na błędy?
Język JavaScript, choć ma już blisko dwanaście lat, swoimi możliwościami wciąż potrafi zafascynować niejednego projektanta stron internetowych. Ma już za sobą gorsze dni, jednak aktualnie dzięki technologii AJAX znów jest na topie. Wykorzystując go w odpowiedni sposób, sprawisz, że twój serwis WWW stanie się bardziej interaktywny i dynamiczny.
Ta książka pozwoli Ci wyjść zwycięsko z pierwszego starcia z tym językiem! Dowiesz się z niej, jak używać zmiennych, operatorów oraz funkcji. Nauczysz się reagować na zdarzenia oraz wykorzystywać okna dialogowe. Ponadto zdobędziesz wiedzę na temat pracy z obiektami DOM HTML oraz na temat sposobów reagowania na błędy w skryptach. Autor przedstawia tu także dostępne obiekty JavaScript oraz pokazuje, jak wykonywać operacje związane z czasem. Ogromnym atutem tej książki jest przejrzystość i usystematyzowany sposób prezentowania informacji. Dzięki temu również Ty szybko i bezboleśnie poznasz JavaScript!
* Typowe konstrukcje języka JavaScript
* Wykorzystanie zmiennych
* Zastosowanie funkcji
* Reagowanie na zdarzenia
* Sposoby użycia okien dialogowych
* Wykonywanie operacji związanych z czasem
* Dostępne obiekty JavaScript
* Obiekty DOM HTML
* Przygotowanie własnych obiektów
* Dziedziczenie w JavaScript
* Obsługa błędów
Przejdź bezboleśnie pierwsze starcie z JavaScript!
Naucz się łączyć największe zalety języków oraz technik programowania
i twórz interaktywne strony internetowe
* Jak unikać typowych błędów i sprawnie rozwiązywać problemy programistyczne?
* Jak połączyć zalety HTML, XML i PHP dla uzyskania pożądanych efektów?
* Jak tworzyć aplikacje wyposażone w aktywny interfejs użytkownika?
Statyczne strony WWW to dziś już przeszłość. Powszechnie dostępne narzędzia dają programistom prawie nieograniczone możliwości w zakresie tworzenia interaktywnych witryn internetowych, wzbogaconych o najróżniejsze efekty wizualne, animacje oraz wbudowane narzędzia pomocnicze. Największą popularność zdobyły sobie narzędzia z kategorii open source — z powodu ich minimalnego kosztu oraz niezwykle dużych zasobów, dostępnych za pośrednictwem Internetu. Z tej książki dowiesz się, jak tworzyć bogate i interaktywne strony WWW, łącząc rozmaite techniki i korzystając z różnych języków.
Książka "Ajax, JavaScript i PHP. Intensywny trening" poprowadzi Cię krok po kroku po podstawowych zasadach programowania w językach JavaScript, PHP i HTML oraz technologiach programowania. Dzięki temu podręcznikowi dowiesz się m.in., jak wykorzystywać dostępne biblioteki ajaksowe do implementowania i ulepszania podstawowych mechanizmów aplikacji. Szybko nauczysz się tworzyć interaktywne strony WWW, zarówno za pomocą technologii serwerowych, jak i technik oraz narzędzi umiejscowionych po stronie klienckiej, a także ich kombinacji.
* Tworzenie stron WWW w języku HTML
* Stylizacja stron za pomocą arkuszy CSS
* Tworzenie skryptów w języku JavaScript
* Wbudowanie skryptu w stronę WWW
* Obiektowy model dokumentu (DOM)
* Obiekty String
* Instrukcje warunkowe i pętle
* Funkcje wbudowane i biblioteki
* Konstruowanie aplikacji ajaksowych
* Zmienne w języku PHP
* Funkcje liczbowe, łańcuchy i tabele
* Kontrola przepływu sterowania
* Usługi webowe oraz protokoły REST i SOAP
Łącz, kompiluj, dobieraj — niech Twoje strony WWW zrobią wrażenie!
Poznaj narzędzia programu PowerPoint i twórz wyjątkowe prezentacje!
* Jak stworzyć profesjonalną prezentację na każdą okazję?
* Jak modyfikować grafikę SmartArt?
* Jak korzystać z programu Clip Organizer i biblioteki slajdów?
Z pewnością wiesz, do czego służy program PowerPoint, lecz jeśli jeszcze nie potrafisz z niego korzystać, a musisz szybko przygotować profesjonalną prezentację, ta książka jest właśnie dla Ciebie! Znajdziesz tu opis ostatniej wersji programu — PowerPoint 2007. Umożliwia ona stworzenie zaawansowanej i bogatej prezentacji, wyposażonej w dźwięk, fotografie i animacje filmowe. Nowy PowerPoint pozwala także na bezpieczne udostępnianie Twojej prezentacji wszystkim zainteresowanym.
Książka "PowerPoint 2007 PL. Seria praktyk" to bogato ilustrowany, a przy tym prawdziwie intuicyjny podręcznik, dzięki któremu każdy nauczy się sprawnie korzystać z tej aplikacji. Kolor i zrzuty ekranowe ilustrujące kolejne informacje, jak również klarowne i zrozumiałe instrukcje sprawiają, że nauka staje się niezwykle prosta. Dzięki tej książce poznasz wszystkie niezbędne narzędzia PowerPointa i ciekawe funkcje tego programu. Dowiesz się, jak zastosować w swojej prezentacji grafiki SmartArt oraz zaawansowane układy slajdów, a także w jaki sposób korzystać z galerii stylów czy biblioteki slajdów.
* Tworzenie prezentacji
* Praca z tekstem
* Grafika i linie
* Konwersja na grafikę SmartArt
* Tabele i wykresy
* Używanie Excela 2007 — kopiowanie i wstawianie tabel
* Wzbogacanie prezentacji — animacje
* Multimedia
* Dodawanie filmów i dźwięku
* Tworzenie albumów
* Pokaz slajdów
* Nagrywanie narracji
* Udostępnianie prezentacji
* Bezpieczeństwo
PowerPoint jest dla każdego!
Poznaj narzędzia oraz funkcje Excela i z łatwością wykorzystuj tę wiedzę w pracy
* Jak tworzyć skoroszyty i wykresy?
* Jak zarządzać danymi w arkuszach?
* Jak szacować formuły?
Na samo brzmienie słowa "Excel" reagujesz paniką? Uważasz, że to bardzo skomplikowany i trudny w obsłudze program? Świetnie! Ta książka została napisana właśnie z myślą o Tobie! Podręcznik, który trzymasz w rękach, stanowi namacalny dowód na to, że Excel 2007 może być prosty, a nauka jego obsługi bardzo przyjemna! Choć trudno Ci w tej chwili w to uwierzyć, aplikacja ta oferuje cale spektrum nowoczesnych, a przy tym przyjaznych i intuicyjnych narzędzi oraz funkcji, dzięki którym znacznie usprawnisz i przyspieszysz swoją pracę. Naprawdę warto je poznać!
Książkę "Excel 2007 PL. Seria praktyk" przygotowano w taki sposób, aby każdy mógł nauczyć się korzystać z narzędzi Excela, tworzyć odpowiednie arkusze oraz wykonywać na nich praktyczne operacje. Wszystkie porady i instrukcje napisane zostały prostym, zrozumiałym językiem. Dzięki temu szybko opanujesz sposoby zarządzania danymi czy szacowania formuł w tym programie. Wszystkie omawiane zagadnienia zilustrowane są ułatwiającymi zrozumienie zrzutami ekranowymi, a kolorowy druk znacznie uprzyjemni Ci korzystanie z książki. Wystarczy ją przeczytać, a poznasz Excela w stopniu pozwalającym Ci na swobodną pracę w tym programie. Na co zatem czekasz? Przed Tobą nauka takich zagadnień, jak:
* Tworzenie skoroszytu
* Wprowadzanie danych do arkusza i zarządzanie nimi
* Formuły i funkcje
* Tabele i wykresy
* Konwersja tabeli do postaci zakresu
* Zaawansowane funkcje
* Szacowanie formuł
* Zarządzanie Excelem
* Makra
* Szablony i scenariusze
* Łącza i odwołania
* Stosowanie aktualizacji
Najprostszy i najprzyjemniejszy sposób na poznanie Excela!
Poznaj praktyczne możliwości programu Access 2007!
* Jak właściwie zaprojektować bazę danych?
* Jak korzystać z szablonów?
* Jak tworzyć tabele i definiować relacje między nimi?
Wbrew pozorom nie trzeba być specjalistą, żeby korzystać z Accessa! Jest to program wyjątkowo przyjazny dla użytkownika, umożliwiający tworzenie baz danych i zarządzanie nimi bez potrzeby dogłębnego poznawania języka SQL oraz skomplikowanych środowisk serwerowych. Aplikacja pozwala na zapisywanie danych z wykorzystaniem formularzy, kierowanie zapytań do bazy, a także dzielenie danych ze współpracownikami za pośrednictwem sieci komputerowej.
Książka "Access 2007 PL. Seria praktyk" zawiera zwięzły i czytelny opis wszystkich najważniejszych funkcji tego programu, a także konkretne przykłady i jasne instrukcje zastosowania narzędzi Accessa. Kolorowe strony pozwalają na szybkie odnalezienie interesujących Cię zagadnień. Dzięki temu podręcznikowi poznasz podstawowe zasady tworzenia dobrego projektu bazy danych oraz jej zaawansowane możliwości. Nauczysz się tworzyć tabele, formularze i raporty, a także korzystać z kluczy podstawowych i obcych. Bez problemu zbudujesz taką bazę danych, która pozwoli Ci sprawnie zarządzać informacjami.
* Personalizacja Accessa 2007
* Projektowanie baz danych
* Relacyjne bazy danych
* Klucze podstawowe i obce
* Tworzenie tabel
* Korzystanie z typów danych
* Definiowanie relacji
* Kwerendy
* Korzystanie z SQL
* Tworzenie i dostrajanie formularzy
* Tworzenie raportów
* Współdzielenie Accessa
Naucz się korzystać z Accessa — zachwycą Cię jego możliwości!
Odkryj bogactwo funkcji Worda!
Jak poprawnie formatować i uatrakcyjniać dokumenty?
Chcesz zacząć sprawnie tworzyć w programie Word dokumenty o profesjonalnym wyglądzie? A może tak dobrze go już znasz, że wątpisz, by skrywał przed Tobą jeszcze jakiekolwiek tajemnice? Tak czy inaczej warto opanować wszystkie potężne możliwości najpopularniejszego edytora tekstów, różne sposoby pracy z nim i metody tworzenia dokumentów tekstowych. Uzbrojony w taką wiedzę, z pewnością będziesz pracował szybciej i sprawniej.
Książka "Word 2007 PL. Seria praktyk" jest graficznym przewodnikiem po najnowszej wersji Worda i zawiera dokładny opis jego funkcji podstawowych oraz zaawansowanych — począwszy od tworzenia i formatowania tekstów, a na złożonych makrach skończywszy. Wszystko to przedstawione zostało za pomocą przejrzystych, kolorowych i szczegółowych instrukcji oraz praktycznych przykładów. Dzięki temu podręcznikowi poznasz całe spektrum narzędzi Worda i udoskonalisz swoją pracę z tym programem.
* Narzędzia główne
* Formatowanie tekstu
* Szybkie style
* Praca z dokumentem
* Drukowanie i publikowanie
* Konwersja do formatu PDF
* Biblioteka ClipArt i SmartArt
* Hiperłącza i zakładki
* Równania
* Zaawansowane funkcje — podpis cyfrowy
* Makra
Opanuj wszystkie narzędzia Worda i ciesz się swobodą tworzenia dokumentów!
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
Dołącz do kreatorów nowych trendów! Stwórz własny serwis społecznościowy!
* Pierwsze kroki w roli twórcy serwisu — rodzaje stron, prawo i reklama
* Skrypty, instalacja i administracja — PHPizabi, Elgg, Dolphin, Joomla!
* ABC moderatora i użytkownika — regulamin, trolle, zakres ingerencji
Serwisy społecznościowe są bodaj najszybciej rozwijającą się dziś częścią internetu. Nie sposób przecenić ich roli społecznej i opiniotwórczej. Liczba użytkowników i ich poczucie wspólnoty decydują o sile i prężności tych serwisów. W każdej chwili możesz przyłączyć się do któregoś z nich. Jednak znacznie więcej radości sprawiłoby Ci na pewno prowadzenie własnego serwisu, wokół którego skupiałaby się cała społeczność osób o zainteresowaniach podobnych do Twoich.
W książce "Serwisy społecznościowe. Budowa, administracja i moderacja" znajdziesz wszelkie informacje dotyczące tworzenia i obsługi serwisu społecznościowego. Opisano w niej początki tego zjawiska społecznego, podstawy jego działania, rozmaite odmiany serwisów, wszelkie kwestie prawne i techniczne. Niezależnie od tego, czy szukasz inspiracji odnośnie treści umieszczanych w serwisie, czy chciałbyś dowiedzieć się, jak rozwiązać konkretne problemy z konfiguracją, rejestracją, wyborem mechanizmu działania czy wyglądu Twojego serwisu, autorzy służą Ci rzetelną wiedzą, wskazówkami i podpowiedziami. Oprócz tego wprowadzą Cię w kwestie związane z bezpieczeństwem w sieci, rolą moderatora i rozwiązywaniem problemów z użytkownikami.
* Społeczności internetowe
* Serwisy społecznościowe (historia, rodzaje, reklama)
* Regulacje prawne
* Wybór domeny i hostingu
* Niezbędne narzędzia (klient FTP, edytory CSS i tekstowe)
* Serwis społecznościowy a forum dyskusyjne
* Bezpieczeństwo serwisu
* Skrypty (PHPizabi, Elgg, Dolphin, Joomla!, BuddyPress, Joovili, SocialEngine i wiele innych)
* Online-Community-Building
* Skrypty do budowy serwisu wideo (ClipBucket Lite, Clipshare, ClipHouse i wiele innych)
* Rola moderatora
* Social shopping
Sprawdź, jak wiele satysfakcji daje własny serwis społecznościowy!
AutoCAD to program do komputerowego wspomagania projektowania, który od lat wyznacza standardy na rynku takich aplikacji. Z jego możliwości korzystają projektanci różnych branż, a ogromna liczba bibliotek, modułów i nakładek sprawia, że realizacja nawet najbardziej złożonych projektów przebiega szybko i sprawnie. Każda kolejna wersja AutoCAD-a jest bardziej rozbudowana. W wersji 2008 autorzy aplikacji zadbali o optymalizację znanych już użytkownikom narzędzi i zwiększenie produktywności pracy. Zmodernizowany interfejs użytkownika oraz nowe możliwości docenią nie tylko profesjonaliści, ale również ci, którzy stawiają pierwsze kroki w świecie komputerowego wspomagania projektowania.
Książka "AutoCAD 2008 i 2008 PL" to wyczerpujące omówienie najnowszej edycji tej aplikacji. Każdy użytkownik AutoCAD-a, niezależnie od stopnia zaawansowania, znajdzie w niej interesujące informacje. Czytając tę książkę, nauczysz się tworzyć i modyfikować rysunki, wymiarować je, korzystać z warstw, bloków i stylów oraz drukować projekty. Poznasz zasady modelowania bryłowego, tworzenia szablonów oraz rysowania w trybie aksonometrycznym. Każde z narzędzi dostępnych w aplikacji jest dokładnie omówione, a ilustrowane przykłady ułatwiają poznanie ich w praktyce.
* Interfejs użytkownika, menu i paski narzędzi
* Praca z dokumentami
* Układy współrzędnych
* Tworzenie podstawowych obiektów i definiowanie ich właściwości
* Napisy i tabelki
* Rysowanie precyzyjne
* Rysunek aksonometryczny
* Kreskowanie
* Naprawianie uszkodzonych rysunków
* Techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Modelowanie 3D i bryły ACIS
Poznaj najnowszą wersję narzędzia, które zrewolucjonizowało pracę projektantów na całym świecie.
Zobacz, jakie to proste — naucz się tworzyć bazy danych!
* Jak tworzyć formularze i raporty?
* Jak modyfikować strukturę tabel?
* Jak stosować mechanizmy wymiany danych?
Współczesny świat wymusza na przedsiębiorstwach gromadzenie oraz przetwarzanie ogromnej ilości informacji. To sprawia, że muszą one dysponować wydajnymi i sprawnymi bazami danych. Aby zbudować taki system zarządzania danymi, niezbędne są odpowiednie narzędzia — jednym z nich jest program MS Access. Ta aplikacja przede wszystkim pozwala na łatwą kontrolę poprawności tworzonych projektów oraz zapewnia integrację narzędzi służących do tworzenia struktury relacyjnej. Dba także o zgodność tych narzędzi ze standardem języka zapytań SQL, wykorzystywanym do tworzenia i modyfikowania baz danych oraz operowania na zgromadzonych w nich informacjach.
Książka „Bazy danych. Pierwsze starcie” stanowi doskonałe wprowadzenie w tematykę tworzenia baz danych. Zawiera wszystkie potrzebne informacje, podane w prosty i przejrzysty sposób. Ten podręcznik przyda się zarówno studentom kierunków informatycznych, jak i wszystkim tym, którzy chcą zdobyć wiedzę o nowoczesnych metodach budowania takich baz. Stąd dowiesz się m.in., jak wykorzystywać język zapytań SQL, w jaki sposób tworzyć tabele, formularze i raporty oraz stosować mechanizmy wymiany danych, a także na czym polega filtrowanie i sortowanie w zapytaniach. Zdobędziesz wiedzę i umiejętności wystarczające do samodzielnego zbudowania wydajnej bazy danych i sprawnego nią zarządzania.
* Projektowanie bazy danych — narzędzia wizualne
* Tworzenie formularzy i raportów
* Strukturalny język zapytań SQL w wersji MS JetSQL
* Składnia podstawowa
* Unia — koniunkcja zbiorów
* Grupowanie i funkcje agregujące
* Zastosowanie języka SQL z poziomu formularzy
* Mechanizmy wymiany danych
* Obiekty: DAO, RDO, ADO
* Zastosowanie mechanizmów wymiany danych przy tworzeniu aplikacji
Stwórz własną, niezawodną bazę danych!
Wkrocz w świat projektowania 3D
* Jak definiować parametry projektu?
* W jaki sposób korzystać z narzędzi projektowych?
* Jak generować dokumentację techniczną?
Inventor, opracowany i sprzedawany przez firmę Autodesk, to program typu CAD, pozwalający na zamodelowanie projektowanego urządzenia lub elementu w postaci bryły trójwymiarowej. W oparciu o tak zamodelowaną bryłę Inventor umożliwia wygenerowanie pełnej dokumentacji projektowej — rysunków wykonawczych i złożeniowych, wykazu części i innych. Aplikacja pozwala także na przeprowadzenie symulacji i analizy działania projektowanego urządzenia.
"Inventor. Pierwsze kroki " to podręcznik dla wszystkich osób, które chcą poznać możliwości tej aplikacji i wykorzystać je w swojej pracy. Książka opisuje proces instalacji i konfiguracji programu oraz definiowania parametrów projektu. Pokazuje także kolejne kroki jego realizacji. Przeczytasz w niej o tworzeniu szkiców, definiowaniu wiązań, generowaniu modeli bryłowych i tworzeniu zespołów. Dowiesz się także, w jaki sposób wygenerować dokumentację techniczną w oparciu o gotowy model oraz jak zaprezentować elementy projektu w postaci animacji trójwymiarowej.
* Instalacja Inventora
* Konfiguracja interfejsu użytkownika
* Praca z oknami dialogowymi
* Tworzenie szkiców i wiązań
* Edycja obiektów graficznych
* Tworzenie brył trójwymiarowych
* Łączenie elementów w zespoły
* Tworzenie dokumentacji technicznej
* Prezentacja zespołów
Zrealizuj swoje wizje za pomocą Inventora!
1. Hibernate w akcji
Autorzy: Christian Bauer, Gavin King
T³umaczenie: Rafa³ Joñca
ISBN: 83-246-0527-4
Tytu³ orygina³u: Hibernate in Action
Format: B5, stron: 410
Szukasz rozwi¹zania problemów zwi¹zanych z korzystaniem z relacyjnych baz danych
w po³¹czeniu z programowaniem obiektowym? Chcesz poprawiæ wydajnoœæ i jakoœæ
aplikacji bazodanowych? A mo¿e rozwi¹zania, które stosowa³eœ dotychczas, okazuj¹
siê niewystarczaj¹ce przy du¿ych projektach? Siêgnij po Hibernate, czyli rewolucyjne
narzêdzie stanowi¹ce warstwê poœrednicz¹c¹ pomiêdzy aplikacj¹ i baz¹ danych,
umo¿liwiaj¹ce utrwalanie i odczyt obiektów Javy w bazie. Hibernate eliminuje koniecznoœæ
rêcznego tworzenia kodu odwzorowuj¹cego obiekty na model relacyjny i odwrotnie,
a tak¿e znacz¹co poprawia wydajnoœæ i stabilnoœæ aplikacji. Nie bez znaczenia równie¿
jest fakt, i¿ Hibernate dostêpne jest na licencji open-source.
Ksi¹¿ka „Hibernate w akcji”, napisana przez twórców tego narzêdzia. To wyczerpuj¹cy
podrêcznik dla programistów, którzy planuj¹ zastosowaæ je w swoich projektach.
Czytaj¹c j¹, dowiesz siê, na czym polega odwzorowanie obiektowo-relacyjne i w jaki
sposób implementuje je Hibernate. Poznasz zasady tworzenia i stosowania obiektów
trwa³ych, zarz¹dzania transakcjami i buforowania danych. Znajdziesz tak¿e informacje
o optymalizowaniu wydajnoœci aplikacji stosuj¹cych Hibernate oraz procesie
projektowania takich aplikacji.
W ksi¹¿ce poruszono m.in.:
• Odwzorowania obiektowo-relacyjne
• Konfiguracja i uruchomienie Hibernate
• Odwzorowywanie danych w klasach
• Stosowanie obiektów trwa³ych
• Transakcje i buforowanie
• Wydajne pobieranie obiektów z bazy
• Projektowanie aplikacji wykorzystuj¹cych Hibernate
Wydawnictwo Helion • Narzêdzia wspomagaj¹ce dzia³anie Hibernate
ul. Koœciuszki 1c Poznaj Hibernate i przekonaj siê, jak dziêki niemu usprawnisz swoj¹ pracê
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
2. Spis treści
Przedmowa 9
Wstęp 11
Podziękowania 13
O książce i autorach 15
O Hibernate 3 i EJB 3 19
1. Trwałość dzięki odwzorowaniu obiektowo-relacyjnemu 21
1.1. Czym jest trwałość? .............................................................................................................. 23
1.1.1. Relacyjne bazy danych ............................................................................................. 23
1.1.2. Język SQL ................................................................................................................. 24
1.1.3. Korzystanie z SQL w Javie ....................................................................................... 24
1.1.4. Trwałość w aplikacjach obiektowych ....................................................................... 25
1.2. Niedopasowanie paradygmatów ......................................................................................... 27
1.2.1. Problem szczegółowości ........................................................................................... 28
1.2.2. Problem podtypów .................................................................................................... 29
1.2.3. Problem identyczności ............................................................................................. 30
1.2.4. Problemy dotyczące asocjacji ................................................................................... 32
1.2.5. Problem nawigacji po grafie obiektów ..................................................................... 33
1.2.6. Koszt niedopasowania ............................................................................................... 34
1.3. Warstwy trwałości i alternatywy ........................................................................................ 35
1.3.1. Architektura warstwowa ........................................................................................... 35
1.3.2. Ręczne tworzenie warstwy trwałości za pomocą SQL i JDBC .............................. 37
1.3.3. Wykorzystanie serializacji ........................................................................................ 38
1.3.4. A może ziarenka encyjne EJB? ................................................................................ 39
3. 4 Spis treści
1.3.5. Obiektowe systemy bazodanowe ............................................................................. 40
1.3.6. Inne rozwiązania ....................................................................................................... 41
1.4. Odwzorowanie obiektowo-relacyjne .................................................................................. 41
1.4.1. Czym jest ORM? ....................................................................................................... 42
1.4.2. Ogólne problemy ORM ............................................................................................ 44
1.4.3. Dlaczego ORM? ........................................................................................................ 45
1.5. Podsumowanie ...................................................................................................................... 47
2. Wprowadzenie i integracja Hibernate 49
2.1. „Witaj świecie” w stylu Hibernate ...................................................................................... 50
2.2. Podstawy architektury Hibernate ...................................................................................... 55
2.2.1. Interfejsy podstawowe .............................................................................................. 56
2.2.2. Interfejsy wywołań zwrotnych ................................................................................. 58
2.2.3. Typy ........................................................................................................................... 58
2.2.4. Interfejsy rozszerzeń ................................................................................................ 59
2.3. Konfiguracja podstawowa .................................................................................................... 59
2.3.1. Tworzenie obiektu SessionFactory .......................................................................... 60
2.3.2. Konfiguracja w środowisku niezarządzanym .......................................................... 62
2.3.3. Konfiguracja w środowisku zarządzanym ................................................................ 66
2.4. Zaawansowane ustawienia konfiguracyjne ........................................................................ 68
2.4.1. Konfiguracja bazująca na pliku XML ...................................................................... 69
2.4.2. Obiekt SessionFactory dowiązany do JNDI ........................................................... 70
2.4.3. Dzienniki ................................................................................................................... 71
2.4.4. Java Management Extensions .................................................................................. 73
2.5. Podsumowanie ...................................................................................................................... 75
3. Odwzorowanie klas trwałości danych 77
3.1. Aplikacja CaveatEmptor ..................................................................................................... 78
3.1.1. Analiza dziedziny biznesowej .................................................................................. 79
3.1.2. Model dziedzinowy CaveatEmptor ......................................................................... 79
3.2. Implementacja modelu dziedzinowego .............................................................................. 82
3.2.1. Kwestia przesiąkania zadań ...................................................................................... 82
3.2.2. Trwałość automatyczna i przezroczysta ................................................................... 83
3.2.3. Tworzenie klas POJO ............................................................................................... 84
3.2.4. Implementacja asocjacji POJO ................................................................................. 86
3.2.5. Dodanie logiki do metod dostępowych ................................................................... 90
3.3. Definicja metadanych odwzorowujących .......................................................................... 92
3.3.1. Metadane w pliku XML ........................................................................................... 92
3.3.2. Podstawowe odwzorowania właściwości i klas ........................................................ 95
3.3.3. Programowanie zorientowane na atrybuty ............................................................ 101
3.3.4. Modyfikacja metadanych w trakcie działania aplikacji ......................................... 102
3.4. Identyczność obiektów ....................................................................................................... 104
3.4.1. Identyczność a równość .......................................................................................... 104
3.4.2. Tożsamość bazodanowa w Hibernate .................................................................... 104
3.4.3. Wybór kluczy głównych ......................................................................................... 106
3.5. Szczegółowe modele obiektów .......................................................................................... 108
3.5.1. Encje i typy wartości .............................................................................................. 109
3.5.2. Stosowanie komponentów ...................................................................................... 109
3.6. Odwzorowanie dziedziczenia klas .................................................................................... 113
3.6.1. Tabela na klasę konkretną ...................................................................................... 113
3.6.2. Tabela na każdą hierarchię klas ............................................................................. 115
4. Spis treści 5
3.6.3. Tabela na każdą podklasę ....................................................................................... 117
3.6.4. Wybór strategii ........................................................................................................ 120
3.7. Asocjacje .............................................................................................................................. 121
3.7.1. Asocjacje zarządzane? ............................................................................................. 121
3.7.2. Krotność .................................................................................................................. 122
3.7.3. Najprostsza możliwa asocjacja ............................................................................... 122
3.7.4. Tworzenie asocjacji dwukierunkowej .................................................................... 123
3.7.5. Związek rodzic-potomek ........................................................................................ 126
3.8. Podsumowanie .................................................................................................................... 127
4. Stosowanie obiektów trwałych 129
4.1. Cykl życia obiektu trwałego .............................................................................................. 130
4.1.1. Obiekty ulotne ........................................................................................................ 131
4.1.2. Obiekty trwałe ......................................................................................................... 132
4.1.3. Obiekt odłączony .................................................................................................... 133
4.1.4. Zasięg identyczności obiektów ............................................................................... 134
4.1.5. Poza zasięgiem identyczności ................................................................................ 135
4.1.6. Implementacja equals() i hashCode() .................................................................... 136
4.2. Zarządca trwałości .............................................................................................................. 140
4.2.1. Czynienie obiektu trwałym .................................................................................... 140
4.2.2. Aktualizacja stanu trwałego obiektu odłączonego ................................................. 141
4.2.3. Pobranie obiektu trwałego ..................................................................................... 142
4.2.4. Aktualizacja obiektu trwałego ................................................................................ 143
4.2.5. Zmiana obiektu trwałego na ulotny ....................................................................... 143
4.2.6. Zmiana obiektu odłączonego na ulotny ................................................................. 144
4.3. Trwałość przechodnia w Hibernate ................................................................................. 144
4.3.1. Przechodniość przez osiągalność ........................................................................... 145
4.3.2. Trwałość kaskadowa w Hibernate ......................................................................... 146
4.3.3. Zarządzanie kategoriami przedmiotów .................................................................. 147
4.3.4. Rozróżnienie obiektów ulotnych i odłączonych .................................................... 151
4.4. Pobieranie obiektów ........................................................................................................... 152
4.4.1. Pobieranie obiektów na podstawie identyfikatora ................................................ 153
4.4.2. Wprowadzenie do HQL ......................................................................................... 154
4.4.3. Zapytania przez określenie kryteriów .................................................................... 155
4.4.4. Zapytanie przez przykład ....................................................................................... 155
4.4.5. Strategie sprowadzania danych .............................................................................. 156
4.4.6. Wybór strategii sprowadzania w odwzorowaniach ............................................... 158
4.4.7. Optymalizacja pobierania obiektów ....................................................................... 163
4.5. Podsumowanie .................................................................................................................... 164
5. Transakcje, współbieżność i buforowanie 167
5.1. Transakcje bazodanowe ..................................................................................................... 169
5.1.1. Transakcje JDBC i JTA .......................................................................................... 170
5.1.2. Interfejs Transaction ............................................................................................... 171
5.1.3. Opróżnianie sesji ..................................................................................................... 173
5.1.4. Poziomy izolacji ...................................................................................................... 174
5.1.5. Wybór poziomu izolacji .......................................................................................... 176
5.1.6. Ustawianie poziomu izolacji ................................................................................... 177
5.1.7. Blokada pesymistyczna ........................................................................................... 177
5.2. Transakcje aplikacyjne ...................................................................................................... 180
5.2.1. Wersjonowanie zarządzane .................................................................................... 181
6. Spis treści 7
7.5. Techniki tworzenia zaawansowanych zapytań ................................................................ 279
7.5.1. Zapytania dynamiczne ............................................................................................ 280
7.5.2. Filtry kolekcji .......................................................................................................... 282
7.5.3. Podzapytania ........................................................................................................... 284
7.5.4. Zapytania SQL ........................................................................................................ 286
7.6. Optymalizacja pobierania obiektów ................................................................................. 288
7.6.1. Rozwiązanie problemu n+1 pobrań danych ......................................................... 288
7.6.2. Zapytania iterate() ................................................................................................... 291
7.6.3. Buforowanie zapytań .............................................................................................. 292
7.7. Podsumowanie .................................................................................................................... 294
8. Tworzenie aplikacji stosujących Hibernate 295
8.1. Projektowanie aplikacji warstwowych ............................................................................. 296
8.1.1. Użycie Hibernate w systemie serwletowym ......................................................... 297
8.1.2. Stosowanie Hibernate w kontenerze EJB ............................................................. 311
8.2. Implementacja transakcji aplikacyjnych ......................................................................... 319
8.2.2. Trudny sposób ......................................................................................................... 321
8.2.3. Odłączone obiekty trwałe ....................................................................................... 322
8.2.4. Długa sesja .............................................................................................................. 323
8.2.5. Wybór odpowiedniej implementacji transakcji aplikacyjnych ............................ 327
8.3. Obsługa specjalnych rodzajów danych ............................................................................ 328
8.3.1. Starsze schematy baz danych i klucze złożone ..................................................... 328
8.3.2. Dziennik audytowy ................................................................................................. 337
8.4. Podsumowanie .................................................................................................................... 343
9. Narzędzia Hibernate 345
9.1. Procesy tworzenia aplikacji ............................................................................................... 346
9.1.1. Podejście z góry na dół ........................................................................................... 347
9.1.2. Podejście z dołu do góry ......................................................................................... 347
9.1.3. Podejście od środka ................................................................................................ 347
9.1.4. Spotkanie w środku ................................................................................................. 347
9.1.5. Ścieżka przejścia ..................................................................................................... 348
9.2. Automatyczne generowanie schematu bazy danych ....................................................... 348
9.2.1. Przygotowanie metadanych odwzorowania ........................................................... 349
9.2.2. Utworzenie schematu ............................................................................................. 351
9.2.3. Aktualizacja schematu bazy danych ....................................................................... 353
9.3. Generowanie kodu klas POJO ........................................................................................... 354
9.3.1. Wprowadzenie metaatrybutów .............................................................................. 355
9.3.2. Metody odnajdujące ............................................................................................... 357
9.3.3. Konfiguracja hbm2java ........................................................................................... 358
9.3.4. Uruchamianie narzędzia hbm2java ........................................................................ 359
9.4. Istniejące schematy i Middlegen ...................................................................................... 360
9.4.1. Uruchomienie Middlegen ...................................................................................... 360
9.4.2. Ograniczanie tabel i związków ............................................................................... 362
9.4.3. Dostosowanie generowania metadanych ............................................................... 363
9.4.4. Generowanie metadanych hbm2java i XDoclet .................................................... 365
9.5. XDoclet ................................................................................................................................ 366
9.5.1. Ustawianie atrybutów typu wartości ...................................................................... 367
9.5.2. Odwzorowanie asocjacji encyjnych ....................................................................... 368
9.5.3. Uruchomienie XDoclet .......................................................................................... 369
9.6. Podsumowanie .................................................................................................................... 371
7. 8 Spis treści
A Podstawy języka SQL 373
B Strategie implementacji systemów ORM 377
B.1. Właściwości czy pola? ........................................................................................................ 378
B.2. Strategie sprawdzania zabrudzenia .................................................................................. 379
B.2.1. Dziedziczenie po wygenerowanym kodzie ........................................................... 379
B.2.2. Przetwarzanie kodu źródłowego ............................................................................ 379
B.2.3. Przetwarzanie kodu bajtowego .............................................................................. 380
B.2.4. Introspekcja ............................................................................................................. 380
B.2.5. Generowanie kodu bajtowego „w locie” ................................................................ 381
B.2.6. Obiekty „uogólnione” ............................................................................................. 382
C Powrót do świata rzeczywistego 383
C.1. Dziwna kopia ...................................................................................................................... 384
C.2. Im więcej, tym lepiej .......................................................................................................... 385
C.3. Nie potrzebujemy kluczy głównych .................................................................................. 385
C.4. Czas nie jest liniowy ........................................................................................................... 386
C.5. Dynamicznie niebezpieczne .............................................................................................. 386
C.6. Synchronizować czy nie synchronizować? ....................................................................... 387
C.7. Naprawdę gruby klient ...................................................................................................... 388
C.8. Wznawianie Hibernate ...................................................................................................... 388
Bibliografia 391
Skorowidz 393
8. Wprowadzenie
i integracja Hibernate
W rozdziale:
♦ Działanie Hibernate na przykładzie aplikacji
„Witaj świecie”
♦ Podstawowe interfejsy programistyczne
Hibernate
♦ Integracja z zarządzanymi i niezarządzanymi
środowiskami
♦ Zaawansowane opcje konfiguracyjne
9. 50 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Dobrze zdawać sobie sprawę z potrzeby odwzorowania obiektowo-relacyjnego
w aplikacjach Javy, ale jeszcze lepiej zobaczyć takie odwzorowanie w akcji. Za-
cznijmy od prostego przykładu obrazującego zalety Hibernate.
Wiele osób wie, że niemal każda książka o programowaniu rozpoczyna się od
przykładu „Witaj świecie”. Nie zamierzamy się wyłamywać z tej konwencji i rów-
nież przedstawimy prostą aplikację tego typu używającą Hibernate. Niestety, pro-
ste wyświetlenie komunikatu tekstowego na konsoli nie uwidoczniłoby żadnych
zalet Hibernate. Z tego powodu tworzony program będzie tworzył nowe obiekty
w bazie danych, aktualizował je i wykonywał zapytania, by je pobrać.
Niniejszy rozdział stanowi podstawę dla pozostałych rozdziałów. Poza przed-
stawieniem typowego dla książek informatycznych przykładu wprowadzimy rów-
nież interfejs programistyczny Hibernate i omówimy konfigurację systemu w róż-
nych środowiskach wykonawczych, na przykład serwerach aplikacji J2EE lub
aplikacjach klienckich.
2.1. „Witaj świecie” w stylu Hibernate
Aplikacje Hibernate definiują klasy trwałe, które są odwzorowywane na tabele
bazy danych. Pierwszy przykład zawiera jedną klasę i jeden plik opisu odwzo-
rowania. Przyjrzyjmy się, jak wygląda prosta klasa trwałości, jak określa się odwzo-
rowanie i jak wykonuje się podstawowe operacje dotyczące trwałości danych.
Celem pierwszej aplikacji jest zapamiętywanie w bazie danych komunikatów,
a następnie ich pobieranie w celu wyświetlania. Aplikacja stosuje prostą klasę
trwałości, Message, reprezentującą komunikaty do wyświetlenia. Klasę przedsta-
wia listing 2.1.
Listing 2.1. Plik Message.java — prosta klasa trwałości
package hello;
public class Message {
private Long id;
private String text;
private Message nextMessage;
private Message() {}
public Message(String text) {
this.text = text;
}
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
private void setText(String text) {
this.text= text;
}
10. 2.1. „Witaj świecie” w stylu Hibernate 51
public Long getNextMessage() {
return nextMessage;
}
private void setnNextMessage(Long nextMessage) {
this.nextMessage= nextMessage;
}
Klasa Message ma trzy atrybuty: identyfikator, treść komunikatu i referencję do
innego komunikatu. Atrybut identyfikacyjny umożliwia aplikacji dostęp do iden-
tyfikatora bazodanowego — wartości klucza głównego — obiektu trwałego. Jeśli
dwa egzemplarze klasy Message zawierają ten sam identyfikator, dotyczą tego same-
go wiersza w tabeli bazy danych. Jako typ identyfikatora wybraliśmy Long, choć
nie jest to wymóg. Hibernate dopuszcza stosowane dla identyfikatorów dowolnych
typów, co wkrótce przedstawimy.
Wszystkie atrybuty klasy Message stosują metody dostępowe do właściwości
w stylu ziarenek JavaBeans. Klasa zawiera także bezparametrowy konstruktor.
Klasy trwałości stosowane w kolejnych przykładach wyglądają bardzo podobnie
do przedstawionej.
Egzemplarze klasy Message mogą być zarządzane (w sensie zapewnienia trwa-
łości) przez Hibernate, ale nie jest to przymus. Ponieważ obiekt Message nie imple-
mentuje żadnych klas i interfejsów specyficznych dla Hibernate, można go używać
jak dowolnej innej klasy Javy.
Message message = new Message("Witaj świecie");
System.out.println(message.getText());
Przedstawiony fragment wykonuje właśnie to zadanie, którego oczekuje się po
aplikacji „Witaj świecie” — wyświetla na konsoli napis Witaj świecie. Niektó-
rym wydaje się zapewne, że w tym momencie jesteśmy wyjątkowo uprzejmi —
w rzeczywistości ten prosty przykład demonstruje istotną cechę wyróżniającą
Hiberante od innych rozwiązań trwałości, na przykład ziarenek encyjnych EJB.
Klasę trwałości można stosować w dowolnym kontekście, bo nie jest konieczny
żaden szczególny kontener. Ponieważ książka dotyczy Hibernate, zapiszmy obiekt
Message do bazy danych.
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Message message = new Message("Witaj świecie");
session.save(message);
tx.commit();
session.close();
Przedstawiony kod korzysta z interfejsów Session i Transaction systemu Hiber-
nate (wkrótce zajmiemy się wywołaniem getSessionFactory()). Przedstawiony
kod skutkuje przekazaniem do bazy danych polecenia SQL podobnego do nastę-
pującego:
insert into MESSSAGE (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID) values
(1, 'Witaj świecie', null)
11. 52 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Chwileczkę — kolumna MESSAGE_ID zostaje zainicjalizowana dziwną wartością.
Nigdzie nie ustawialiśmy w kodzie właściwości id, więc oczekujemy dla niej war-
tości null, prawda? W rzeczywistości właściwość id jest szczególna — jest wła-
ściwością identyfikującą, która przechowuje wygenerowaną, unikatową wartość
(w dalszej części tekstu wyjaśnimy sposób generowania wartości). Wartość zostaje
wprowadzona do obiektu Message w momencie wykonania metody save().
W przykładzie zakładamy wcześniejsze istnienie tabeli MESSAGE. W rozdziale
9. omówimy wykorzystanie Hibernate do automatycznego tworzenia tabel wyma-
ganych przez aplikację dzięki informacjom zawartym w plikach odwzorowań
(w ten sposób unikamy pisania jeszcze większej ilości kodu SQL). Chcemy, by
program wyświetlił komunikat na konsoli. Skoro komunikat znalazł się w bazie
danych, nie powinno to sprawić żadnych trudności. Kolejny przykład pobiera
z bazy danych wszystkie komunikaty w kolejności alfabetycznej i wyświetla ich
zawartość.
Session newSession = getSessionFactory().openSession();
Transaction newTransaction = newSession.beginTransaction();
List messages = newSession.find("from Message as m order by m.text asc");
System.out.println("Znalezionych komunikatów: " + messages.size());
for (Iterator iter = messages.iterator(); iter.hasNext();) {
Message message = (Message) iter.next();
System.out.println(message.getText());
}
newTransaction.commit();
newSession.close();
Ciąg znaków "from Message as m order by m.text asc" to zapytanie Hibernate
zapisane w specjalnym, obiektowym języku zapytań Hibernate (HQL — Hiber-
nate Query Language). Zapytanie zostaje wewnętrznie przekształcone na nastę-
pujący kod SQL w momencie wywołania metody find().
select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID
from MESSAGES m
order by m.MESSAGE_TEXT asc
Przedstawiony kod powoduje wyświetlenie na konsoli poniższego tekstu:
Znalezionych komunikatów: 1
Witaj świecie
Jeśli ktoś nigdy wcześniej nie korzystał z narzędzi ORM, spodziewa się ujrzeć kod
SQL w metadanych lub też kodzie Javy. Nie ma go tam. Cały kod SQL zostaje
wygenerowany dynamicznie w trakcie działania aplikacji (ewentualnie w momen-
cie jej uruchamiania dla wszystkich instrukcji SQL wielokrotnego użytku).
Aby wystąpiła cała magia, Hibernate potrzebuje więcej informacji na temat
zapewniania trwałości klasie Message. Informację tę najczęściej umieszcza się
dokumencie odwzorowania zapisywanym w formacie XML. Dokument ten defi-
niuje, poza innymi kwestiami, w jaki sposób przełożyć właściwości klasy Message
na kolumny tabeli MESSAGES. Przyjrzyjmy się fragmentowi dokumentu odwzoro-
wania — listing 2.2.
12. 2.1. „Witaj świecie” w stylu Hibernate 53
Listing 2.2. Prosty plik odwzorowania Hibernate w formacie XML
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class
name="hello.Message"
table="MESSAGES">
<id
name="id"
column="MESSAGE_ID">
<generator class="increment"/>
</id>
<property
name="text"
column="MESSAGE_TEXT"/>
<many-to-one
name="nextMessage"
cascade="all"
column="NEXT_MESSAGE_ID"/>
</class>
</hibernate-mapping>
Dokument odwzorowania informuje Hibernate, że klasa Message przekłada się
na tabelę MESSAGES. Informuje również, że właściwość identyfikatora ma trafić do
kolumny nazwanej MESSAGE_ID, właściwość komunikatu do kolumny o nazwie
MESSAGE_TEXT, natomiast właściwość nextMessage jest asocjacją z krotnością wiele-
do-jednego i powinna trafić do kolumny o nazwie NEXT_MESSAGE_ID (pozostałymi
szczegółami na tym etapie nie będziemy się zajmować).
Dokument XML nie jest trudny do zrozumienia. Można go bez problemów
ręcznie tworzyć i modyfikować. W rozdziale 3. omówimy sposób generowania tego
pliku na podstawie komentarzy zawartych w kodzie źródłowym aplikacji. Nie-
zależnie od wybranego podejścia Hiberante uzyskuje wystarczająco dużo infor-
macji, by poprawnie generować wszystkie polecenia SQL dotyczące wstawiania,
aktualizacji, usuwania i pobierania egzemplarzy klasy Message. Nie trzeba ręcznie
pisać wszystkich wymaganych poleceń SQL.
Uwaga Wielu programistów Javy narzeka na tak zwane „piekło metadanych”,
które towarzyszy tworzeniu oprogramowania J2EE. Niektórzy sugerują
nawet rezygnację z metadanych XML i powrót do zwykłego kodu Javy.
Choć w pełni popieramy te dążenia w niektórych dziedzinach, ORM
wydaje się być zagadnieniem, w którym metadane naprawdę są potrzebne.
Hibernate stosuje sensowne wartości domyślne, by zminimalizować dłu-
gość plików konfiguracyjnych. Wykorzystuje dojrzałą definicję typu doku-
mentu (DTD), więc możliwe jest wykorzystanie edytorów z uzupełnianiem
składni i walidacją. Istnieją nawet narzędzia zapewniające automatyczne
generowanie metadanych.
13. 54 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Zmieńmy pierwszy komunikat i dodatkowo utwórzmy kolejny powiązany z pierw-
szym. Kod wykonujący to zadanie przedstawia listing 2.3.
Listing 2.3. Aktualizacja komunikatu
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
// 1 to identyfikator wygenerowany dla pierwszego komunikatu
Message message = (Message) session.load(Message.class, new Long(1));
message.setText("Witajcie Ziemianie");
Message nextMessage = new Message("Proszę zabrać mnie do waszego przywódcy");
message.setNextMessage(nextMessage);
tx.commit();
session.close();
Powyższy kod powoduje wykonanie w jednej transakcji trzech poleceń SQL.
select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID
from MESSAGES m
where m.MESSAGE_ID = 1
insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)
values (2, 'Proszę zabrać mnie do waszego przywódcy', null)
update MESSAGES
set MESSAGE_TEXT = 'Witajcie Ziemianie', NEXT_MESSAGE_ID = 2
where MESSAGE_ID = 1
Zauważ, że Hibernate automatycznie rozpoznał modyfikację właściwości text
i nextMessage dla pierwszego komunikatu i zapisał nowe wartości w bazie danych.
Skorzystaliśmy z cechy Hibernate nazywanej automatycznym wykrywaniem
zabrudzenia. Pozwala ona uniknąć jawnego proszenia Hibernate o aktualizację
bazy danych, gdy zmienia się stan obiektu wewnątrz transakcji. Warto zwrócić
uwagę, iż nowy komunikat również stał się trwały, gdy tylko powstała referencja
do niego z pierwszego komunikatu. Jest to tak zwany zapis kaskadowy — unika
się w ten sposób jawnego wywoływania metody save() dla nowego obiektu trwa-
łego, o ile tylko jest on osiągalny z poziomu innego obiektu trwałego. Kolejność
wykonania instrukcji SQL nie jest taka sama jak kolejność modyfikacji wartości
właściwości. Hibernate używa wyrafinowanego algorytmu do określenia wydajnej
kolejności zapisów, by uniknąć zerwania ograniczeń klucza obcego i jednocześnie
pozostać odpowiednio przewidywalnym. Jest to tak zwany transakcyjny zapis opóź-
niony.
Ponownie uruchomienie programu spowoduje wyświetlenie poniższego
wyniku:
Znalezionych komunikatów: 2
Witajcie Ziemianie
Proszę zabrać mnie do waszego przywódcy
14. 2.2. Podstawy architektury Hibernate 55
Na tym zakończymy przygodę z aplikacją „Witaj świecie”. Gdy poznaliśmy dzia-
łający kod, możemy się cofnąć i dokładniej omówić poszczególne elementy głów-
nego interfejsu programistycznego Hibernate.
2.2. Podstawy architektury Hibernate
Interfejs programistyczny to pierwszy element Hibernate, który trzeba poznać,
by móc skorzystać z warstwy trwałości w aplikacji. Głównym celem projektowym
interfejsu była minimalizacja współzależności między poszczególnymi kompo-
nentami oprogramowania. W praktyce interfejs programistyczny ORM nie należy
do najmniejszych. Na szczęście nie wszystkie interfejsy trzeba poznać od razu, by
korzystać z Hibernate. Rysunek 2.1 przedstawia zadania najważniejszych interfej-
sów w warstwie biznesowej i trwałości. Na rysunku warstwa biznesowa znajduje
się powyżej warstwy trwałości, gdyż w typowych aplikacjach warstwowych działa
jako klient warstwy trwałości. Niektóre proste aplikacje niezbyt dobrze separują
logikę biznesową od trwałości — nie będziemy się tym jednak zajmować, bo zale-
cane podejście przedstawia rysunek.
Rysunek 2.1. Wysokopoziomowy przegląd interfejsów programistycznych
Hibernate z uwzględnieniem architektury warstwowej
Interfejsy Hibernate przedstawione na rysunku 2.1 można podzielić następująco:
15. 56 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Interfejsy wywoływane przez aplikacje w celu wykonania prostych operacji
CRUD i wyszukiwania. Interfejsy te stanowią główny punkt styku logiki
biznesowej z Hibernate. Zawierają interfejsy: Session, Transaction i Query.
Interfejsy wywoływane przez kod infrastruktury aplikacji w celu konfiguracji
Hibernate. Jest to przede wszystkim klasa Configuration.
Interfejsy wywołań zwrotnych pozwalające aplikacji reagować na zdarzenia
zachodzące wewnątrz Hibernate. Są to interfejsy: Interceptor, Lifecycle
i Validatable.
Interfejsy zapewniające rozszerzanie rozbudowanej funkcjonalności
odwzorowania w Hibernate. Są to interfejsy: UserType, CompositeUserType
i IdentifierGenerator. Interfejsy te implementuje kod infrastruktury
aplikacji (jeśli to konieczne).
Hibernate wykorzystuje istniejące interfejsy programistyczne Javy, włączając
w to JDBC, JTA (Java Transaction API) oraz JNDI (Java Naming and Directory
Interface). JDBC zapewnia odpowiedni poziom abstrakcji funkcji wspólnych dla
różnych systemów relacyjnych baz danych, co oznacza, że Hibernate potrafi sko-
rzystać z dowolnej bazy danych ze sterownikiem JDBC. JNDI i JTA umożliwiają
Hibernate integrację z serwerami aplikacji J2EE.
W niniejszym podrozdziale nie będziemy omawiać szczegółowej semantyki
metod interfejsów Hibernate. Zajmiemy się raczej podstawowymi rolami inter-
fejsów. Większość interfejsów znajduje się w pakiecie net.sf.hibernate. Przyj-
rzyjmy się pokrótce każdemu z nich.
2.2.1. Interfejsy podstawowe
Pięć interfejsów podstawowych pojawia się w niemal każdej aplikacji wykorzy-
stującej Hibernate. Dzięki nim możliwe staje się pobieranie i zapamiętywanie
trwałych obiektów oraz sterowanie transakcjami.
Interfejs Session
Interfejs Session to główny interfejs każdej aplikacji Hibernate. Egzemplarze
Session są lekkie — koszt ich utworzenia i zniszczenia bywa niewielki. Jest to
niezwykle istotne, bo każda aplikacja cały czas tworzy i usuwa coraz to nowe sesje,
prawdopodobnie przy każdym nowym żądaniu. Sesje Hibernate nie są bezpieczne
wielowątkowo i z tego powodu należy tak projektować aplikację, by używać ich
w danym momencie w tylko jednym wątku.
Znaczenie sesji Hibernate można opisać jako coś pomiędzy połączeniem
i transakcją. Najprościej traktować sesję jako bufor lub kolekcję załadowanych
obiektów powiązanych z jedną jednostką zadaniową. Hibernate potrafi wykryć
zmiany w obiektach tej jednostki zadaniowej. Często interfejs Session nazywa
się zarządcą trwałości, gdyż zapewnia dostęp do podstawowych operacji trwało-
ści takich jak zapis i pobieranie obiektów. Warto podkreślić, że sesja Hibernate
nie ma nic wspólnego z sesją warstwy połączenia internetowego, na przykład
16. 2.2. Podstawy architektury Hibernate 57
z HttpSession. Gdy w książce używamy słowa sesja, mamy na myśli sesję Hiber-
nate. Gdy mówimy o sesji użytkownika, mamy na myśli obiekt HttpSession.
Interfejs Session został dokładnie omówiony w podrozdziale 4.2.
Interfejs SessionFactory
Aplikacja pobiera egzemplarze Session z SessionFactory. W porównaniu z Session
obiekt ten jest znacznie bardziej interesujący.
Interfejs SessionFactory pewnością nie jest lekki! Został zaprojektowany
z myślą o współdzieleniu przez wiele wątków aplikacji. Najczęściej na całą aplika-
cję występuje tylko jeden obiekt SessionFactory tworzony w momencie jej ini-
cjalizacji. Jeśli jednak aplikacja korzysta z kilku baz danych w połączeniu z Hiber-
nate, potrzeba osobnego obiektu SessionFactory dla każdej bazy danych.
Obiekt SessionFactory buforuje wygenerowane polecenia SQL i inne meta-
dane odwzorowania stosowane przez Hibernate w trakcie działania aplikacji.
Dodatkowo buforuje dane, które zostały odczytane w jednej jednostce zadanio-
wej i mogłyby przydać się w innej jednostce zadaniowej (ten drugi poziom bufo-
rowania działa tylko wtedy, gdy odwzorowania klas i kolekcji sugerują jego użycie).
Interfejs Configuration
Obiekt Configuration służy do konfiguracji i uruchomienia Hibernate. Aplikacja
używa egzemplarza Configuration do wskazania położenia dokumentów odwzo-
rowań i właściwości specyficznych dla Hibernate. Podrozdział 2.3 ze średnim
stopniem złożoności opisuje konfigurację systemu Hibernate.
Interfejs Transaction
Interfejs Transaction jest opcjonalny. Aplikacje Hibernate nie muszą z niego korzy-
stać, jeśli chcą zarządzać transakcjami we własnym zakresie. Interfejs stara się
ukryć szczegóły implementacji konkretnych mechanizmów transakcyjnych: JDBC,
klasy UserTransaction z JTA lub nawet transakcji CORBA (Common Object Requ-
est Broker Architecture). W ten sposób zapewnia aplikacji jednorodny sposób ich
obsługi. Ułatwia to zachowanie przenośności aplikacji Hibernate między różnymi
środowiskami wykonywania i kontenerami.
W niniejszej książce stosujemy interfejs Transaction. Został on dokładnie
wyjaśniony w rozdziale 5.
Interfejsy Query i Criteria
Interfejs Query umożliwia wysyłanie zapytań do bazy danych i sterowanie proce-
sem ich wykonywania. Zapytania pisze się w języku HQL lub też w odpowied-
nim dla danej bazy danych dialekcie SQL. Egzemplarz Query odpowiada za dowią-
zanie parametrów zapytania, ograniczenie liczby zwracanych wyników i wykonanie
zapytania.
Interfejs Criteria jest bardzo podobny. Umożliwia utworzenie i wykonanie
obiektowych kryteriów wyszukiwania.
17. 58 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Aby tworzony kod był możliwie krótki, Hibernate dostarcza kilka skrótów
w interfejsie Session, by móc w jednym wierszu wykonać zapytanie. W książce
nie stosujemy tych skrótów — zawsze używamy interfejsu Query.
Egzemplarz Query jest lekki nie daje się zastosować poza egzemplarzem Session,
dla którego powstał. Opis funkcji interfejsu Query znajduje się w rozdziale 7.
2.2.2. Interfejsy wywołań zwrotnych
Interfejsy wywołań zwrotnych umożliwiają aplikacji otrzymywanie powiadomień,
gdy coś ciekawego stanie się ze sprawdzanym obiektem — na przykład zostanie
załadowany, zapisany lub usunięty. Aplikacje stosujące Hibernate nie muszą ko-
rzystać z wywołań zwrotnych, ale niejednokrotnie przydają się one do tworzenia
ogólnej funkcjonalności, na przykład automatycznego tworzenia zapisów audy-
torskich.
Interfejsy Lifecycle i Validatable zapewniają trwałym obiektom reakcję na
zdarzenia związane z własnym cyklem życia trwałego. Cykl życia ma nieroze-
rwalny związek z operacjami CRUD obiektu. Zespół projektowy Hibernate był
pod silnym wpływem innych rozwiązań ORM posiadających podobne wywoła-
nia zwrotne. Później zdano sobie sprawę, że kasy trwałości implementujące
interfejsy specyficzne dla Hibernate nie są najlepszym pomysłem, gdyż ich sto-
sowanie utrudnia przenośność kodu. Ponieważ ich używanie obecnie nie jest zale-
cane, nie są one szerzej opisywane w niniejszej książce.
Interfejs Interceptor wprowadzono, by aplikacje mogły przetwarzać wywo-
łania zwrotne bez potrzeby wprowadzania implementacji interfejsów Hibernate
do klas trwałości. Implementacje interfejsu Interceptor wprowadza się do egzem-
plarzy trwałych klas jako parametry. Przykład ich użycia pojawi się w rozdziale 8.
2.2.3. Typy
Podstawowym i niezwykle użytecznym elementem architektury jest sposób wyko-
nania obiektu Type w Hibernate. Obiekt ten odwzorowuje typ Javy na typ kolumny
tabeli bazy danych (w rzeczywistości typ może dotyczyć wielu kolumn). Wszystkie
trwałe właściwości klas trwałych, włączając w to asocjacje, posiadają odpowiedni
typ Hibernate. Ten sposób obsługi czyni Hibernate wyjątkowo elastycznym i roz-
szerzalnym.
Istnieje bogaty zbiór typów wbudowanych zawierający wszystkie typy podsta-
wowej Javy oraz wiele klas ze standardowej biblioteki JDK, włączając w to typy:
java.util.Currency, java.util.Calendar, byte[] i java.io.Serializable.
Co więcej, Hibernate obsługuje typy zdefiniowane przez użytkownika. Inter-
fejsy UserType i CompositeUserType dają możliwość kreowania własnych typów.
W ten sposób klasy wykorzystywane w wielu różnych aplikacjach, na przykład
Address, Name i MonetaryAmount udaje się obsłużyć wygodnie i elegancko. Własne
typy uważa się za jedną z najistotniejszych cech Hibernate. Zalecamy z nich korzy-
stać w coraz to nowy sposób!
Szczegóły dotyczące typów Hibernate zostały omówione w podrozdziale 6.1.
18. 2.3. Konfiguracja podstawowa 59
2.2.4. Interfejsy rozszerzeń
Większość funkcjonalności Hibernate można dostosować do własnych potrzeb,
włączając w to wybór wbudowanych strategii. Gdy okazują się one niewystarcza-
jące, Hibernate dopuszcza zastosowanie własnej implementacji przez zastoso-
wanie odpowiedniego interfejsu. Możliwe rozszerzenia są następujące:
generacja klucza głównego (interfejs IdentifierGenerator),
obsługa dialektu języka SQL (klasa abstrakcyjna Dialect),
strategia buforowania (interfejsy Cache i CacheProvider),
zarządzanie połączeniem JDBC (interfejs ConnectionProvider),
zarządzanie transakcjami (interfejsy TransactionFactory, Transaction
i TransactionManagerLookup),
strategia ORM (hierarchia interfejsów ClassPersister),
strategia dostępu do właściwości (interfejs PropertyAccessor),
tworzenie pośredników (interfejs ProxyFactory).
Hibernate zawiera co najmniej jedną implementację każdego z wymienionych
interfejsów, więc najczęściej nie trzeba zaczynać od podstaw, gdy chce się jedy-
nie rozszerzyć pewną wbudowaną funkcjonalność. Co więcej, dostępny kod źró-
dłowy stanowi doskonały przykład w sytuacji, gdy tworzy się własne rozwiązanie.
Zanim zacznie się tworzyć jakikolwiek kod związany z Hibernate, warto zadać
sobie następujące pytanie: w jaki sposób zmusić do działania obiekt Session?
2.3. Konfiguracja podstawowa
Przyjrzeliśmy się przykładowej aplikacji oraz podstawowym interfejsom Hiber-
nate. Aby móc skorzystać z automatycznej trwałości, trzeba poznać sposób jej
konfiguracji. Hibernate udaje się tak skonfigurować, by działało poprawnie w nie-
malże dowolnej aplikacji Javy i środowisku programistycznym. Na ogół jednak
stosuje się go w dwu- lub trójwarstowych aplikacjach klient-serwer, przy czym
Hibernate zostaje wdrożony tylko po stronie serwera. Aplikacją kliencką najczę-
ściej jest przeglądarka internetowa, ale zdarzają się również aplikacje SWT i Swing.
Choć w książce skupiamy się na wielowarstwowych aplikacjach internetowych,
przedstawiane opisy mają zastosowanie również w dowolnej innej architekturze,
na przykład aplikacjach wiersza poleceń. Istotnym jest, by zrozumieć różnicę
w konfiguracji Hibernate w środowisku zarządzanym i niezarządzanym.
Środowisko zarządzanie — tworzy pule zasobów, na przykład połączeń
z bazą danych, i dopuszcza deklaratywne (w postaci metadanych) określanie
zakresu transakcji oraz zasad bezpieczeństwa. Serwery aplikacji J2EE,
na przykład JBoss, BEA WebLogic lub IBM WebSphere, implementują
w Javie standardowe (zgodne z J2EE) środowisko zarządzane.
Środowisko niezarządzane — zapewnia proste zarządzanie współbieżnością
dzięki puli wątków. Pojemnik serwletowy taki jak Jetty lub Tomcat
19. 60 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
zapewnia niezarządzane środowisko serwerowe dla aplikacji internetowych
pisanych w Javie. Samowystarczalne aplikacje kliencie i aplikacje wiersza
poleceń również uważa się za niezarządzane. Środowiska te nie udostępniają
automatycznego zarządzania transakcjami i zasobami oraz nie zapewniają
infrastruktury bezpieczeństwa. Sama aplikacja zarządza połączeniami
z bazą danych i określa granice transakcji.
Hibernate stara się w sposób abstrakcyjny traktować środowisko, w którym przy-
chodzi mu pracować. W środowisku niezarządzanym sam obsługuje transakcje
i połączenia JDBC (lub deleguje ich wykonanie do odpowiedniego kodu apli-
kacji). W środowisku zarządzanym integruje się z transakcjami i połączeniami
bazodanowymi zarządzanymi przez kontener. Hibernate potrafi poprawnie dzia-
łać w obu środowiskach.
W obu środowiskach pierwszym zadaniem jest uruchomienie Hibernate.
W praktyce nie jest to trudne — wystarczy utworzyć obiekt SessionFactory,
używając klasy Connection.
2.3.1. Tworzenie obiektu SessionFactory
Aby uzyskać obiekt SessionFactory, należy najpierw utworzyć pojedynczy egzem-
plarz klasy Configuration w momencie inicjalizacji aplikacji i skonfigurować
ścieżki do plików odwzorowań. Po konfiguracji obiekt Configuration pozwala
tworzyć egzemplarze SessionFactory. Po ich wykonaniu obiekt Configuration
staje się zbędny.
Poniższy kod uruchamia Hibernate:
Configuration cfg = new Configuration();
cfg.addResource("hello/Message.hbm.xml");
cfg.setProperties(System.getProperties());
SessionFactory sessions = cfg.buildSessionFactory();
Lokalizację pliku odwzorowania, Message.hbm.xml, określa się względem pod-
stawowej ścieżki klas aplikacji. Jeśli na przykład ścieżka klas jest aktualnym fol-
derem, plik Message.hbm.xml musi znajdować się wewnątrz folderu hello. Pliki
odwzorowania XML muszą znajdować się w ścieżce wyszukiwania klas. W przy-
kładzie wykorzystujemy również właściwości systemowe maszyny wirtualnej, by
ustawić pozostałe opcje konfiguracyjne (można je inicjalizować wcześniej w samej
aplikacji lub przy uruchamianiu systemu maszyny wirtualnej).
Łańcuch Tworzenie łańcuchów wywołań metod to styl programowania obsługiwany
wywołań przez wiele interfejsów Hibernate. Jest on bardziej popularny w języku
metod Smalltalk niż w Javie. Niektóre osoby uważają go za mniej czytelny i trud-
niejszy do debugowania niż typowy styl programowania w Javie. W więk-
szości sytuacji jest jednak wyjątkowo wygodny.
Większość programistów Javy tworzy metody ustawiające lub doda-
jące zwracające typ void, czyli brak wartości. Język SmallTalk nie posiada
typy void, więc metody ustawiające lub dodające zwracają obiekt otrzy-
mujący dane. Takie podejście umożliwia zmianę wcześniejszego kodu
na następujący.
20. 2.3. Konfiguracja podstawowa 61
SessionFactory sessions = new Configuration()
.addResource("hello/Message.hbm.xml")
.setProperties(System.getProperties())
.buildSessionFactory();
Zauważ, że nie potrzeba deklarować lokalnej zmiennej dla obiektu Confi-
guration. Styl ten będzie stosowany w niektórych przykładach, ale gdy ktoś
go nie lubi, nie wymuszamy jego stosowania. Jeśli ktoś go lubi, zalecamy
pisanie każdego wywołania metody w osobnym wierszu. W przeciwnym
razie znacznie trudniej testować utworzony kod debugerem.
Przyjęło się, że pliki odwzorowań Hibernate w formacie XML zapisuje się w pli-
kach z rozszerzeniem .hbm.xml. Dodatkowo przyjęło się, by tworzyć osobny plik
odwzorowania dla każdej klasy, zamiast umieszczać cały opis odwzorowań w jed-
nym pliku (jest to możliwe, ale nie jest zalecane). Przedstawiony przykład „Witaj
świecie” stosuje tylko jedną klasę trwałości, ale załóżmy, że jest ich wiele i każde
odwzorowanie znajduje się w osobnym pliku. Gdzie należy umieścić pliki odwzo-
rowań?
Dokumentacja Hibernate zaleca, by plik odwzorowania dla każdej klasy trwa-
łości umieszczać w tym samym folderze co klasę. Przykładowo, plik odwzoro-
wania dla klasy Message należy umieścić w folderze hello pod nazwą Message.
hbm.xml. Dla innej klasy trwałej należałoby wykonać osobny plik odwzorowania.
Zalecamy stosować się do przedstawionej sugestii. Monolityczne pliki metada-
nych narzucane przez niektóre systemy szkieletowe, na przykład struts-config.xml
z Struts, są głównym czynnikiem powodującym powstanie hasła „piekło meta-
danych”. Wiele plików odwzorowań wczytuje się, wielokrotnie wywołując metodę
addResource(). Ewentualnie, gdy programista stosuje się do przedstawionej powy-
żej konwencji, może użyć metody addClass(), przekazując jako parametr klasę
trwałą.
SessionFactory sessions = new Configuration()
.addClass(org.hibernate.auction.model.Item.class)
.addClass(org.hibernate.auction.model.Category.class)
.addClass(org.hibernate.auction.model.Bid.class)
.setProperties(System.getProperties())
.buildSessionFactory();
Metoda addClass() zakłada, że nazwa pliku odwzorowania kończy się rozszerze-
niem .hbm.xml i znajduje się w tym samym folderze co odwzorowywany plik klasy.
Przedstawimy tworzenie pojedynczego obiektu SessionFactory, ponieważ
takie podejście występuje w aplikacjach najczęściej. Jeśli potrzebny jest kolejny
obiekt, bo na przykład istnieje kilka baz danych, cały proces powtarza się od nowa.
W ten sposób zawsze istnieje jeden obiekt SessionFactory na bazę danych gotowy
do tworzenia obiektów Session działających z tą bazą danych i zestawem odwzo-
rowań klas.
Konfiguracja Hibernate to nie tylko wskazanie dokumentów odwzorowań.
Trzeba również wskazać sposób uzyskania połączenia z bazą danych oraz określić
zachowanie Hibernate w różnych sytuacjach. Mnogość dostępnych właściwości
konfiguracyjnych potrafi przytłoczyć (pełna ich lista znajduje się w dokumentacji
21. 62 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Hibernate). Na szczęście większość parametrów stosuje sensowne wartości do-
myślne, więc najczęściej potrzeba zmienić tylko ich niewielką część.
Aby określić opcje konfiguracyjne, korzysta się z jednej z wymienionych
technik.
Przekazuje się egzemplarz klasy java.util.Properties jako parametr
metody Configuration.setProperties().
Ustawia się właściwości systemowe za pomocą konstrukcji java
-Dwłaściwość=wartość.
Umieszcza się w ścieżce wyszukiwania klas plik o nazwie hibernate.
properties.
Dołącza się elementy <property> do pliku hibernate.cfg.xml znajdującego
się w ścieżce wyszukiwania klas.
Techniki pierwszą i drugą stosuje się naprawdę rzadko — jedynie w trakcie testów
lub szybkiego prototypowania. Większość aplikacji potrzebuje stałego pliku konfi-
guracyjnego. Oba pliki, hibernate.properties i hibernate.cfg.xml, pełną tę samą
funkcję — konfigurują Hibernate. Wybór pliku zależy tak naprawdę od własnych
preferencji co do składni właściwości. Możliwe jest nawet mieszanie obu technik
i posiadanie osobnych ustawień dla środowiska testowego i wdrożeniowego. Przed-
stawimy to zagadnienie w dalszej części rozdziału.
Bardzo rzadko stosowanym rozwiązaniem alternatywnym jest przekazywanie
przez aplikację obiektu Connection z JDBC w momencie tworzenia obiektu Session
dzięki obiektowi SessionFactory (powstaje wtedy kod typu sessions.openSession
(myConnection)). Opcja ta pozwala nie podawać w trakcie konfiguracji żadnych
opcji związanych z połączeniem z bazą danych. Nie polecamy takiego podejścia
dla nowych aplikacji, które mogą skorzystać z infrastruktury połączeń bazodano-
wych całego środowiska (na przykład wykorzystując pulę połączeń JDBC lub źró-
dła danych serwera aplikacji).
Ze wszystkich opcji konfiguracyjnych najważniejsze są ustawienia połącze-
nia bazodanowego. Różnią się w zależności od tego, czy stosuje się środowisko
zarządzane czy niezarządzane. Z tego względu opis rozbijemy na dwa przypadki.
Zacznijmy od środowiska niezarządzanego.
2.3.2. Konfiguracja w środowisku niezarządzanym
W środowisku niezarządzanym, na przykład kontenerze serwletów, aplikacja
odpowiada za uzyskanie połączeń JDBC. Hibernate jest częścią aplikacji, więc
również może uczestniczyć w ich uzyskaniu. Plik konfiguracyjny informuje, w jaki
sposób Hibernate może uzyskać (lub utworzyć nowe) połączenia JDBC. Ogól-
nie nie zaleca się tworzenia połączeń za każdym razem, gdy tylko chce się skorzy-
stać z bazy danych. Aplikacja Javy powinna zatem używać puli połączeń JDBC.
Istnieją trzy powody przemawiające ze stosowaniem puli:
Uzyskiwanie nowych połączeń jest kosztowne.
Utrzymywanie wielu niewykorzystywanych połączeń jest kosztowne.
22. 2.3. Konfiguracja podstawowa 63
Tworzenie instrukcji przygotowanych dla niektórych sterowników
również jest kosztowne.
Rysunek 2.2 przedstawia rolę puli połączeń JDBC w środowisku wykonawczym
aplikacji internetowej. Ponieważ samo środowisko nie udostępnia puli połączeń
bazodanowych, aplikacja musi wprowadzić własny algorytm tworzenia puli lub
stosować w tym celu niezależną bibliotekę, na przykład udostępnianą na zasadach
open source bibliotekę C3P0. Aplikacje bez Hibernate najczęściej wywołuje
metody puli połączeń, by uzyskać połączenie JDBC i wykonać polecenie SQL.
Rysunek 2.2. Pula połączeń JDBC w środowisku niezarządzanym
Po dodaniu Hibernate schemat ulega zmianie — ORM działa jako klient puli
połączeń JDBC, co przedstawia rysunek 2.3. Kod aplikacji używa interfejsów
programistycznych Session i Query z Hibernate do wykonywania operacji trwało-
ści danych. Zajmuje się również zarządzaniem transakcjami, używając interfejsu
Transaction z Hibernate.
Rysunek 2.3. Hibernate z pulą połączeń w środowisku niezarządzanym
Wykorzystanie puli połączeń
Hibernate stosuje architekturę modułów rozszerzających, więc potrafi zintegro-
wać się z dowolną pula połączeń. Obsługa C3P0 została wbudowana, więc z niej
skorzystamy. Hibernate same utworzy pulę po podaniu wymaganych parametrów.
Przykład pliku hibernate.properties stosującego C3P0 przedstawia listing 2.4.
23. 64 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Listing 2.4. Plik hibernate.properties z ustawieniami puli połączeń C3P0
hibernate.connection.driver_class = org.postgresql.Driver
hibernate.connection.url = jdbc:postgresql://localhost/auctiondb
hibernate.connection.username = auctionuser
hibernate.connection.password = secret
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=300
hibernate.c3p0.max_statements=50
hibernate.c3p0.idle_test_period=3000
Przedstawiony fragment pliku określa następujące informacje omawiane wiersz
po wierszu:
Nazwę klasy Javy implementującej sterownik JDBC dla konkretnej bazy
danych (klasa Driver). Plik JAR sterownika musi znajdować w ścieżce
wyszukiwania klas aplikacji.
Adres URL w formacie JDBC określający adres serwera i nazwę bazy
danych dla połączeń JDBC.
Nazwa użytkownika bazy danych.
Hasło do bazy danych dla wskazanego użytkownika.
Klasa dialektu języka SQL. Pomimo wysiłków standaryzacyjnych
organizacji ANSI język SQL został zaimplementowany inaczej przez
poszczególnych twórców baz danych. Należy więc określić klasę Dialekt
dla stosowanych połączeń. Hibernate zawiera wbudowaną obsługę
najpopularniejszych baz danych SQL. Nowe dialekty można łatwo
dodawać.
Minimalna liczba oczekujących na działania połączeń JDBC utrzymywana
przez C3P0.
Maksymalna liczba połączeń w puli. Zostanie zgłoszony wyjątek wykonania,
gdy wartość ta okaże się niewystarczająca.
Okres bezczynności podawany w sekundach, więc w przykładzie jest to
5 minut. Po tym okresie nieużywane połączenie zostaje usunięte z puli.
Maksymalna liczba zbuforowanych poleceń przygotowanych. Buforowanie
poleceń przygotowanych pozwala znacząco zwiększyć szybkość działania
Hibernate.
Czas bezczynności w sekundach, po którym połączenie jest automatycznie
poddawane walidacji.
Określanie właściwości w postaci hinernate.c3p0.* powoduje automatyczne wy-
branie C3P0 jako rozwiązania puli połączeń dla Hibernate (nie potrzeba żadnej
dodatkowej opcji w celu włączenia C3P0). Biblioteka C3P0 ma znacznie więcej
funkcji i opcji niż zostało przedstawionych w przykładzie. Zalecamy zajrzeć do
dokumentacji interfejsu programistycznego Hibernate. Dokumentacja dla klasy
24. 2.3. Konfiguracja podstawowa 65
net.sf.hibernate.cfg.Environment informuje o wszystkich właściwościach kon-
figuracyjnych, włączając w to opcje C3P0 i innych puli połączeń obsługiwanych
w sposób bezpośredni przez Hibernate.
Pozostałymi obsługiwanymi pulami połączeń są: Apache DBCP i Proxool.
Warto wypróbować we własnym środowisku wszystkie trzy rozwiązania przed
podjęciem decyzji. Społeczność Hibernate najczęściej wybiera C3P0 i Proxool.
Hibernate zawiera dodatkowo własny mechanizm puli połączeń, ale nadaje
się on jedynie do testów i eksperymentów z Hibernate — nie należy go stoso-
wać w systemie produkcyjnym. Nie był projektowany z uwzględnieniem wydaj-
nej obsługi wielu współbieżnych żądań. Brakuje mu również funkcji wykrywa-
nia niepowodzeń istniejących w wyspecjalizowanych pulach połączeń.
Uruchamianie Hibernate
W jaki sposób uruchomić Hibernate z przedstawionymi właściwościami? Jeśli
właściwości zadeklaruje się w pliku hibernate.properties, wystarczy umieścić ten
plik w ścieżce wyszukiwania klas aplikacji. Zostanie automatycznie wykryty i wczy-
tany przez Hibernate w momencie tworzenia obiektu Configuration.
Podsumujmy poznane do tej pory kroki konfiguracyjne. Najwyższy czas
pobrać i zainstalować Hibernate, jeśli chce się go użyć w środowisku niezarzą-
dzanym.
1. Pobierz i rozpakuj sterownik JDBC dla bazy danych. Najczęściej jest
dostępny na witrynie producenta bazy danych. Umieść plik JAR w ścieżce
wyszukiwania klas aplikacji. To samo zrób z plikiem JAR Hibernate.
2. Dodaj zależności Hibernate do ścieżki wyszukiwania klas. Są one dołączone
do Hibernate w folderze lib. Warto zajrzeć do pliku lib/README.txt,
by poznać listę wymaganych i opcjonalnych bibliotek.
3. Wybierz pulę połączeń JDBC obsługiwaną przez Hibernate i skonfiguruj ją,
używając pliku właściwości. Nie zapomnij o wskazaniu dialektu języka SQL.
4. Niech klasa Configuration potrafi odnaleźć plik właściwości. Nadaj mu
nazwę hibernate.properties i umieść go w ścieżce wyszukiwania klas.
5. Utwórz egzemplarz klasy Configuration w aplikacji i załaduj pliki
odwzorowania w formacie XML, używając metod addResource() lub
addClass(). Utwórz obiekt SessionFactory na podstawie Configuration,
wywołując metodę buildSessionFactory().
Niestety, obecnie nie są zdefiniowane żadne pliki odwzorowań. Jeśli chcesz, mo-
żesz skorzystać z przykładu „Witaj świecie” lub pominąć pozostałą część tego
rozdziału i przejść do rozdziału 3. omawiającego klasy trwałości oraz odwzoro-
wania. Czytaj dalej, jeśli chcesz poznać konfigurację Hibernate w środowisku
zarządzanym.
25. 66 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
2.3.3. Konfiguracja w środowisku zarządzanym
Środowisko zarządzane zajmuje się kilkoma najczęściej potrzebnymi zagadnie-
niami, na przykład bezpieczeństwem aplikacji (uwierzytelnianie i autoryzacja),
pulami połączeń i zarządzaniem transakcjami. Typowym środowiskiem zarzą-
dzanym jest serwer aplikacji J2EE. Choć serwery aplikacji najczęściej projektuje
się do obsługi EJB, można skorzystać z wielu udostępnianych przez nie usługi,
nawet jeśli nie stosuje się ziarenek encyjnych EJB.
Hibernate najczęściej stosuje się w połączeniu z EJB sterowanym sesyjnie
lub przez komunikaty, co przedstawia rysunek 2.4. EJB wykorzystuje te same
interfejsy Hibernate co serwlet, JSP lub samowystarczalna aplikacja: Session,
Transaction i Query. Kod dotyczący Hibernate można bez problemów przenosić
między środowiskami zarządzanymi i niezarządzanymi. Sam system w niewi-
doczny sposób zajmuje się różnymi strategiami połączeń i transakcji.
Rysunek 2.4. Hibernate w środowisku zarządzanym przez serwer aplikacji
Serwer aplikacji udostępnia pulę połączeń jako źródło danych dowiązywane
dzięki JNDI — egzemplarz javax.jdbc.Datasource. Należy poinformować Hiber-
nate, gdzie ma szukać źródła danych w JNDI, podając pełną nazwę JNDI. Listing
2.5 przedstawia przykład pliku konfiguracyjnego dla wspomnianej sytuacji.
Listing 2.5. Przykładowy plik hibernate.properties dla źródła danych
zapewnianego przez kontener
hibernate.connection.datasource = java:/comp/env/jdbc/AuctionDB
hibernate.transaction.factory_class =
net.sf.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class =
net.sf.hibernate.transaction.JBossTransactionManagerLookup
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect
Plik najpierw podaje nazwę JNDI źródła danych. Źródło danych należy skonfi-
gurować w deskryptorze wdrożenia aplikacji J2EE — sposób ustawiania zależy
od dostawcy serwera aplikacji. Następnie włączona zostaje integracja Hibernate
26. 2.3. Konfiguracja podstawowa 67
z JTA. W następnym wierszu wskazujemy Hibernate lokalizację klasy Transac-
tionManager serwera aplikacji, by zapewnić pełną integrację z transakcjami kon-
tenera. Standard J2EE nie definiuje jednego konkretnego podejścia, ale Hiber-
nate zawiera wbudowaną obsługę wszystkich popularnych serwerów aplikacji. Na
końcu ponownie pojawia się informacja o dialekcie języka SQL.
Po poprawnej konfiguracji wszystkich elementów sposób korzystania z Hiber-
nate w środowisku zarządzanym nie różni się znacząco od korzystania z wersji
niezarządzanej — tworzy się obiekt Configuration z odwzorowaniami i na jego
podstawie tworzy obiekt SessionFactory. Dodatkowej uwagi wymagają ustawie-
nia związane z transakcyjnością środowiska.
Java ma standardowy interfejs programistyczny dla transakcji, JTA, który służy
do sterowania transakcjami w zarządzanym środowisku J2EE. Są to tak zwane
transakcje zarządzane przez kontener (CMT — Container Managed Transac-
tion). Jeśli menedżer transakcji JTA występuje, połączenia JDBC są z nim zwią-
zane i są pod jego pełną kontrolą. W środowisku niezarządzanym sytuacja jest
zupełnie inna, ponieważ aplikacja (lub pula) bezpośrednio zarządza połączeniami
i transakcjami JDBC.
Zarządzane i niezarządzane środowiska stosują inne podejście do transakcji.
Ponieważ Hibernate w miarę możliwości chce zapewnić przenośność między
oboma środowiskami, sam definiuje interfejs programistyczny do sterowania trans-
akcjami. Interfejs Transaction z Hibernate stanowi abstrakcję ukrywającą róż-
nice między transakcjami JTA i JDBC (a nawet transakcjami CORBA). Konkretną
strategię transakcyjną ustawia właściwość hibernate.connection.factory_ class.
Przyjmuje ona jedną z dwóch wartości:
net.sf.hibernate.transaction.JDBCTransactionFactory, która deleguje
wykonanie zadań do transakcji JDBC; strategię tę stosować należy z pulami
połączeń w środowisku niezarządzanym (staje się domyślna, gdy nie określi
się żadnej strategii).
net.sf.hibernate.transaction.JTATransactionFactory, która deleguje
wykonanie zadań do transakcji JTA; jest to poprawna strategia dla CMT,
gdzie połączenia są powiązane z JTA. Warto pamiętać, że jeśli właśnie
trwa transakcja JTA w momencie wywołania beginTransaction(), kolejne
zadania zostają wykonane w tej transakcji (w przeciwnym razie powstaje
nowa transakcja JTA).
Bardziej szczegółowe wprowadzenie do interfejsu programistycznego Transaction
i wpływu wybranych scenariuszy transakcji zostało opisane w podrozdziale 5.1.
Należy pamiętać o dwóch krokach koniecznych do przeprowadzenia w serwerze
aplikacji J2EE: ustawieniu klasy fabryki dla interfejsu programistycznego Tran-
saction na JTA w opisany wcześniej sposób i zadeklarowaniu wyszukiwania me-
nedżera transakcji w sposób specyficzny dla serwera aplikacji. Strategia wyszuki-
wania potrzebna jest tylko wtedy, gdy korzysta się w Hibernate z buforowania
dwupoziomowego. Nie zaszkodzi ustawiać jej także wtedy, gdy nie używa się
takiego buforowania.
27. 68 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Hibernte Tomcat nie jest pełnym serwerem aplikacji, ale kontenerem serwletów.
z serwerem Z drugiej strony zawiera pewne funkcje spotykane tylko w serwerach
Tomcat aplikacji. Hibernate może skorzystać z jednej z tych dodatkowych fun-
kcji — puli połączeń Tomcata. Tomcat wewnętrznie korzysta z puli po-
łączeń DBCP, ale udostępnia ją jako źródło danych JNDI (podobnie jak
serwery aplikacji). Aby skonfigurować źródło danych Tomcata, dokonaj
edycji pliku server.xml zgodnie z instrukcjami podanymi w dokumentacji
JNDI/JDBC Tomcata. Hibernate odnajdzie źródło danych po ustawie-
niu właściwości hibernate.connection.datasource. Warto pamiętać, że
Tomcat nie zawiera menedżera transakcji, więc cała sytuacja jest nadaj
bardziej podobna do środowiska niezarządzanego.
W tej chwili powinieneś mieć działający system Hibernate, niezależnie od tego, czy
używasz prostego kontenera serwletów czy serwera aplikacji. Utwórz i skompiluj
klasę trwałości (na przykład klasę Message z początku rozdziału), skopiuj Hibernate
i wymagane przez niego biblioteki do ścieżki wyszukiwania klas aplikacji wraz
z plikiem hibernate.properties. Na końcu utwórz obiekt SessionFactory.
Kolejny podrozdział opisuje zaawansowane opcje konfiguracyjne Hibernate.
Niektóre z nich polecamy. W szczególności możliwość tworzenia dla celów testo-
wych dziennika wykonanych poleceń SQL lub stosowania wygodnych plików
konfiguracyjnych XML zamiast prostych plików tekstowych. Można bezpiecznie
pominąć kolejny podrozdział i powrócić do niego dopiero po zdobyciu w roz-
dziale 3. szczegółowej wiedzy na temat klas trwałych.
2.4. Zaawansowane ustawienia konfiguracyjne
Gdy aplikacja z Hibernate działa poprawnie, warto zainteresować się wszystkimi
parametrami konfiguracyjnymi Hibernate. Dzięki nim nierzadko udaje się zopty-
malizować działanie Hibernate, w szczególności przez odpowiednie dostrojenie
współpracy z JDBC (na przykład zastosowanie aktualizacji wsadowych JDBC).
Nie chcemy na razie przynudzać wszystkimi szczegółami — najlepszym źró-
dłem informacji na temat wszystkich opcji konfiguracyjnych jest dokumentacja
Hibernate. W poprzednim podrozdziale przedstawiliśmy jedynie opcje pozwala-
jące uruchomić aplikację.
Istnieje pewien parametr, na który już w tym momencie musimy kłaść duży
nacisk. Przydaje się wielokrotnie, gdy tworzy się oprogramowanie. Ustawienie
właściwości hibernate.show_sql na wartość true włącza wyświetlanie wszyst-
kich utworzonych poleceń SQL na konsoli. Warto korzystać z tej opcji w momen-
cie poszukiwania błędów, poszukiwania wąskiego gardła lub po prostu analizy
działania Hibernate. Warto wiedzieć, czym tak naprawdę zajmuje się warstwa
ORM, więc system nie ukrywa szczegółów poleceń SQL przed programistą.
Do tej pory zakładaliśmy przekazywanie parametrów konfiguracyjnych dzięki
plikowi hibernate.properties lub programowo dzięki egzemplarzowi java.util.
Properties. Trzecie z rozwiązań polega na użyciu pliku konfiguracyjnego w for-
macie XML.
28. 2.4. Zaawansowane ustawienia konfiguracyjne 69
2.4.1. Konfiguracja bazująca na pliku XML
Warto użyć pliku konfiguracyjnego XML (patrz listing 2.6), by w pełni skonfi-
gurować obiekt SessionFactory. W odróżnieniu od pliku hibernate.properties,
który zawiera tylko parametry konfiguracyjne, plik hibernate.cfg.xml może rów-
nież określać lokalizacje dokumentów odwzorowań. Wiele osób preferuje centra-
lizację konfiguracji Hibernate właśnie w ten sposób, by uniknąć dodawania para-
metrów do obiektu Configuration w kodzie aplikacji.
Listing 2.6. Przykładowy plik konfiguracyjny hibernate.cfg.xml
?xml version='1.0'encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory name="java:/hibernate/HibernateFactory">
<property name="show_sql">true</property>
<property name="connection.datasource">
java:/comp/env/jdbc/AuctionDB
</property>
<property name="dialect">
net.sf.hibernate.dialect.PostgreSQLDialect
</property>
<property name="transaction.manager_lookup_class">
net.sf.hibernate.transaction.JBossTransactionManagerLookup
</property>
<mapping resource="auction/Item.hbm.xml"/>
<mapping resource="auction/Category.hbm.xml"/>
<mapping resource="auction/Bid.hbm.xml"/>
< /session-factory>
</hibernate-configuration>
Deklaracja typu dokumentu pomaga analizatorowi XML dokonać walidacji
dokumentu, czyli sprawdzić zgodność jego formatu z wytycznymi
zawartymi w DTD pliku konfiguracyjnego Hibernate.
Opcjonalny atrybut name jest równoważny właściwości hibernate.
ses-sion_factory_name. Służy do dowiązania JNDI dla SessionFactory,
co zostanie omówione w dalszej części rozdziału.
Właściwości hibernate można określać bez przedrostka hibernate.
Poza tym przedrostkiem nazwy i wartości są dokładnie takie same jak we
właściwościach ustawianych programowo.
Dokumenty odwzorowań określa się jako zasoby aplikacji lub nawet jako
na stałe zakodowane nazwy plików. Pliki użyte w przykładzie pochodzą
z aplikacji systemu akcyjnego opisywanego w rozdziale 3.
Do inicjalizacji Hibernate wystarczy teraz użycie następującego kodu:
SessionFactory sessions = new Configuration()
.configure().buildSessionFactory();
29. 70 ROZDZIAŁ 2.
Wprowadzenie i integracja Hibernate
Chwileczkę — skąd Hibernate wie, gdzie znajduje się plik konfiguracyjny?
W momencie wywołania metody configure() Hibernate poszukuje pliku
o nazwie hibernate.cfg.xml w ścieżce wyszukiwania klas. Jeśli chce się dla pliku
konfiguracyjnego zastosować inną nazwę lub też plik znajduje się w niestandar-
dowej lokalizacji, do metody configure() należy przekazać ścieżkę.
SessionFactory sessions = new Configuration()
.configure("/hibernate-config/auction.cfg.xml")
.buildSessionFactory();
Stosowanie plików konfiguracyjnych okazuje się bardziej wygodne od plików
właściwości lub programowego ustawiania opcji. Możliwość usunięcia z kodu
lokalizacji plików odwzorowań klas (nawet jeśli miałby się znaleźć w pomocni-
czej klasie inicjalizującej) stanowi ogromną zaletę przedstawionego podejścia.
Nic nie stoi na przeszkodzie, by stosować różne zbiory plików odwzorowań (i inne
opcje konfiguracyjne) w zależności od bazy danych i środowiska (produkcyjnego
lub testowego). Co więcej, można je przełączać programowo.
Jeśli ścieżka wyszukiwania klas zawiera pliki hibernate.properties i hibernate.
cfg.xml, ustawienia występujące w pliku XML nadpiszą ustawienia z pliku wła-
ściwości. Rozwiązanie bywa użyteczne, gdy pewne podstawowe ustawienia trzy-
ma się w pliku właściwości i modyfikuje dla każdego wdrożenia plikiem XML.
Warto zwrócić uwagę na nadanie parametru name dla obiektu SessionFactory
w pliku konfiguracyjnym XML. Hibernate używa tej nazwy do automatycznego
dowiązania obiektu do JNDI po jego utworzeniu.
2.4.2. Obiekt SessionFactory dowiązany do JNDI
W większości aplikacji stosujących Hibernate obiekt SessionFactory powinien
zostać utworzony tylko jeden raz w momencie inicjalizacji aplikacji. Cała apli-
kacja powinna stosować ten pojedynczy egzemplarz — wszystkie obiekty Session
należy tworzyć na jego podstawie. Często pojawia się pytanie, gdzie umieścić
obiekt fabryki, by był bez trudu dostępny z każdego miejsca aplikacji.
W środowisku J2EE obiekt SessionFactory warto dowiązać do JNDI, by
łatwo udostępnić go wielu wątkom i komponentom wykorzystującym Hibernate.
Oczywiście JNDI to nie jedyny sposób, w jaki komponenty aplikacji mogą uzy-
skać obiekt SessionFactory. Istnieje wiele możliwych implementacji wzorca reje-
stru, włączając w to użycie obiektu ServletContext lub zmiennej static final
w obiekcie singletonu. Szczególnie eleganckim wydaje się być rozwiązanie sto-
sujące komponent szkieletowy odwrócenia sterowania (IoC — Inversion of Con-
trol) o zasięgu całej aplikacji. JNDI jest popularnym rozwiązaniem udostępnianym
jako usługi JMX, co wkrótce pokażemy. Niektóre alternatywy przedstawimy
w podrozdziale 8.1.
Obiekt SessionFactory automatycznie dowiąże się do JNDI, gdy właściwość
hibernate.session_factory_name będzie zawierała nazwę węzła katalogu. Jeśli
środowisko wykonawcze nie zapewnia domyślnego kontekstu JNDI (lub też do-
myślna implementacja JNDI nie obsługuje egzemplarzy interfejsu Reference-
30. 2.4. Zaawansowane ustawienia konfiguracyjne 71
able), należy wskazać kontekst JNDI, używając właściwości hibernate.jndi.
url i hibernate.jndi.class.
Uwaga Interfejs programistyczny JNDI umożliwia zapisywanie i odczyt obiektów
w strukturze hierarchicznej (drzewiastej). JNDI implementuje wzorzec
rejestru. Z JNDI można powiązać obiekty infrastruktury (konteksty trans-
akcji, źródła danych), ustawienia konfiguracyjne (opcje środowiska, reje-
stry użytkownika) lub nawet obiekty aplikacji (referencje do EJB, fabryki
obiektów).
Poniżej przedstawiamy przykładową konfigurację Hibernate, która dowiązuje
obiekt SessionFactory do nazwy hibernate/HibernateFactory, wykorzystując bez-
płatną implementację JNDI firmy Sun (fscontext.jar) bazującą na systemie plików.
hibernate.connection.datasource = java:/comp/env/jdbc/AuctionDB
hibernate.transaction.factory_class =
net.sf.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class =
net.sf.hibernate.transaction.JBossTransactionManagerLookup
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect
hibernate.session_factory_name = hibernate/HibernateFactory
hibernate.jndi.class = com.sun.jndi.fscontext.RefFSContextFactory
hibernate.jndi.url = file:/auction/jndi
Do określenia parametrów równie dobrze można skorzystać z pliku konfigura-
cyjnego XML. Przykład jest mało realistyczny, bo większość serwerów aplika-
cji udostępniających pule połączeń dzięki JNDI stosuje również implementa-
cję JNDI z domyślnym kontekstem dopuszczającym zapis. Opisane podejście
stosuje serwer JBoss, w którym można opuścić dwie ostatnie właściwości i określić
tylko nazwę dla obiektu SessionFactory. Do inicjalizacji dowiązania wystarczy
wtedy wykonanie kodu Configuration().configure().buildSessionFactory().
Uwaga Tomcat zawiera wbudowany kontekst JNDI tylko do odczytu — nie
można w nim nic zapisać z poziomu aplikacji po uruchomieniu kontenera
serwletów. Z tego powodu Hibernate nie potrafi skorzystać z tego kontek-
stu — należy stosować pełną implementację kontekstu (wykorzystując
wspomniany kontekst firmy Sun) lub wyłączyć dowiązanie JNDI dla obie-
ktu SessionFactory przez pominięcie w konfiguracji właściwości session_
factory_name.
Przyjrzyjmy się innym istotnym opcjom konfiguracyjnym Hibernate dotyczącym
tworzenia dziennika operacji.
2.4.3. Dzienniki
Hibernate (i wiele innych implementacji ORM) wykonuje polecenia SQL w spo-
sób asynchroniczny. Polecenie INSERT zazwyczaj nie jest wykonywane zaraz po
wywołaniu przez aplikację metody Session.save(). Podobnie polecenie UPDATE