ORM pomocí iBatis SQLMaps
Tématikou ORM (Object Relational Mapping) jsem se na Dagblogu již zabýval ve spotu
ORM letem světem.
Ten spot je datován do doby, kdy jsme s ORM hodně experimentovali a hledali jsme nejvhodnější nástroj,
vítězem se celkem oprávněně stal Hibernate.
Při přechodu z klasického SQL na mezivrstvu v podobě ORM
jsme narazili hned na několik problémů.
Velkým problémem se ukázalo mapování objektů na stávající databázový model, největší
příkoří působily složené klíče. Celkově vzato se mi jako lepší jeví přístup právě opačný,
namodelovat relace pomoci objektů a na jeho základě si nechat vygenerovat
databázový model.
Když jsem upozorňoval spotem Kdy použít EJB? na
zajímavé názory ohledně alternativy k EJB, tak jsem nezabíhal do hloubky jednotlivých témat,
která zazněla. Mimochodem jsem tam právě tyto nevýhody Hibernate, alespoň z mého pohledu,
zmiňoval. V diskusi se tenkrát objevil tip na alternativu v podobě
iBatis SQLMaps.
Pokud jste o iBatis SQLMaps nikdy neslyšeli, můžete si přečíst velice pěkný článek
Sunil Patila Object-Relational Mapping with SQLMaps. Mě
osobně se iBatis SQLMaps velice líbí a to z toho důvodu, že pro vlastní mapování
použijete klasické SQL. Pro některé případy, to je z mého pohledu právě existující velice
složité DB schéma, mi SQLMaps připadá jako vhodnější kandidát.
Mimochodem deset důvodů proč používat iBATIS SQL Maps, které jsou na oficiálních
stránkách projektu.
- 10 Works with any database that has a JDBC driver (no plugins required)
- 9 Configurable caching (including dependencies)
- 8 Local and Global transaction support and management (JTA)
- 7 Simple XML mapping document structure
- 6 Supports Map, Collection, List and Primitive Wrappers (Integer, String etc.)
- 5 Supports JavaBeans classes (get/set methods)
- 4 Supports complex object mappings (populating lists, complex object models etc.)
- 3 Object models are never perfect (no changes required!)
- 2 Database designs are never perfect (no changes required!)
- 1 You already know SQL, why waste time learning something else?
Ten jedenáctý a pro mě důležitý představuje podpora ve Spring frameworku.
Související články
Související epizody CZ Podcastu
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.