Blog
O mnie
Kontakt
H2 - Łatwo, lekko i przyjemnie Drukuj

Część mojej przygody z programowaniem jest związana również z bazami danych. Przez moje ręce przewinął się (w praktyce) nie tylko MySQL, ale przede wszystkim Oracle. Używalem i używam głównie darmowej, acz okrojonej wersji 10g - Express Edition (sid: XE). Mając ją zainstalowaną na swoim komputerze, do nawet małych projektów, z przywyczajenia zaciągałem całą tą wielką machinę. Czas to zmienić...

 

Z kilku źródeł dowiedziałem się ostatnio o istnieniu projektu H2 - darmowej (również do komercyjnego użytku) bazy danych. Dziś, mając chwilę czasu postanowiłem się jej przyjrzeć.

 

To, co spodobało mi się już na wstępie to strona całego projektu. Intuicyjnie, krótko, ale treściwie, słowem: tak jak lubię! Szczególnie przypadła mi do gustu AJAX'owa wyszukiwarka :) Po 5 minutach przejrzenia quickstart'a, tutoriala i FAQ, ściągnąłem i zainstalowałem to cudo.

 

I znowu tak jak lubię, bez zbednej konfiguracji, miliona opcji do wyboru dostałem do ręki bardzo prosty interfejs webowy gdzie mogę o coś zapytać bazę, przejrzeć drzewko tablic/kolumn itd.

 

Podążając za naprawdę fajną dokumentacją bez problemu przeniosłem swoj aktualny projekt z Oracle'a na H2. Hibernate nie miał z tym żadnych problemów. Co mnie szczególnie zaskoczyło - w H2 istnieje mechanizm sekwencji! Obyło się więc, bez jakichkolwiek zmian w plikach mapujących.

 

Instancja bazy H2 zakładana jest jedynie na kilku plikach w wyznaczonym przez nas miejcu. Miejsce to określamy w url'u połączeniowym. Domyślny URL - jdbc:h2:~/MyDB powoduje zalożenie bazy MyDB w katalogu domowym użytkwonika (tam będą przechowywane wspomniane pliki). W przypadku Windowsów należy więc ich szukac w C:\Document and Settings\. Można też wskazać miejsce przechowywania plików bazy danych poprzez atrybut file: jdbc:h2:file:C:/mojKatalogZBaza/nazwaBazy

 

Istnieje również możliwość uruchomienia bazy H2 w trybie in-memory (poprzez url: jdbc:h2:mem:db1, czyli bez użycia jakichkolwiek plików. Tryb taki jest szczególnie przydatny przy testowaniu sprawdzaniu driver'a, używaniu bazy w trybie 'tylko do odczytu' itp. Należy jednak uważać na wprowadzane dane. Domyślna konfiguracja mówi, że baza taka, a raczej jej content istnieje tak długo, jak długo istnieje przynajmniej jedno połączenie do niej. Własciwość tą można zmienić przy pomocy atrybutu: ;DB_CLOSE_DELAY=-1

 

H2 to baza idealna do małych projektów, w których liczy się lekkość, szybkość i mały rozmiar samej bazy. Idealnie nadaje się w miejsca, gdzie potrzebujemy bazy samej w sobie, a nie wielkiego systemu bazodanowego. Można ją dostarczać razem z aplikacją, startować z poziomu aplikacji w dowolnym momencie poprzez udostępnione API. Bardzo fajnie integruje ją sie też z aplikacjami J2EE - autorzy opracowali w tym celu też listener'a, który powoduje start bazy razem z naszą aplikacją. Wystarczy tylko do deskryptora web.xml w naszej aplikacji dodać:

 

  1. <listener>
  2. <listener-class>org.h2.server.web.DbStarter</listener-class>
  3. </listener>
 


Polecam poświęcić temu projektowi parę minut, naprawdę warto!

Zobacz też...

 
Gości na stronie: 24
Odwiedzin: 158044
© 2006-09 grzechocinski.net