Hibernate je objektově-relační databázový framework, který řeší jednu velice důležitou věc: odděluje tvorbu samotných SQL dotazů / queries od výkonného kódu aplikace. Používáním frameworku Hibernate abstrahujete databázovou vrstvu – není v aplikaci vůbec vidět. Vůbec neřešíte syntax konkrétních SQL dotazů.
Java Database Connectivity (JDBC) představuje rozhraní v Javě pro práci s databázemi. Velká výhoda JDBC je v tom, že v Javě abstrahuje použití konkrétní databáze. V podstatě při práci s JDBC nemusíte přesně vědět jak se připojit na MySQL, MariaDB nebo PostgreeSQL.
Při tvorbě samotných dotazů – pokud nejdete podle SQL standardů – ale využíváte příkazy specifické pro samotný databázový stroj, potřebujete dodazy přizpůsobit pro daný databázový server RDMBS (Relational Database Management System).
To je právě limitace JDBC. Když pracujete s JDBC, tak aplikaci píšete přesně na konkrétní sever. Navíc, v kódu aplikace máte SQL příkazy... a to je ... ehm... nepěkné.
Framework Hibernate má právě výhodu v tom, že je to framework typu ORM (Object Relational Mapping). To znamená, že v Hibernate už nepracujete ze SQL dotazy, ale používáte klasické Java třídy / klassy.
Slovo klasické nemluvím jen tak – jde o klasy, které jsou typu POJO (Plain Old Java Object), což jsou v podstatě jednoduché objekty, které se velmi jednoduše inicializují přes konstruktor bez parametrů, vlastnosti se nastavují pomocí getterů a setterů. Pokud tyto objekty napojíte na ORM Hibernate, tak máte vyhráno. Ten se již postará o to, aby změny ve vašich POJO objektech se promítly do samotné relační databáze.
A navíc: programování ve frameworku Hibernate je nezávislé na konkrétní implementací RDBMS serveru (viz výše). To znamená, že zkrátka a dobŕe (a to je velmi podstatné), umíte migrovat na rozdílné verze v rámci databázových serverů téhož typu. Navic, velmi jednoduše umíte migrovat i mezi různými RDBMS / databázovými servery.
Javácké appky napsané v Hibernatu se podstatně snáze udržují, než appky napsané v JDBC. Už jen z velmi prostého důvodu. Hibernate odděluje byznys logiku od SQL. A tím se zdrojové kódy jevy stávají přehlednější. Přehlednost kódu v Javě je pro Java teamleadera a projektového manažera důležitá v tom, že se programátorům snáze / efektivněji dělají změny v kódu – tedy zapracovávají nové požadavky. Appka je snadněji / efektivněji udržitelná a se podstatně jednodušší ladí případné chyby.
Hurá, ať žije Hibernate!