6 komentáře “iBatis SqlMaps – tak trochu opomíjený ORM

  1. Kromě jednoduchosti je Ibatis velmi flexibilní, co do nezávislosti objektové a datové vrstvy. Bohužel to má svou nevýhodu. A to když jste nuceni přebírat projekt po někom (například indických programátorech), kdo pracoval „ne zcela úplně koncepčně“. Tím myslím, že vztah mezi objekty a databází je dán sáhodlouhými a všelijak strukturovanými SQL statementy v sqlmap souborech, jejichž smysl je těžko zpětně pochopitelný a struktura databáze může být opravdu všelijaká (o absenci unit testů nemluvě). JPA je náročnější na to, něco rychle „zplácat“. Vazba mezi databází a entitami takovouhle volnost nedává (nebo o tom nevím). Každopádně tyto vztahy musí být dány, takže si tam nemůže každý dělat cokoliv a výsledek by měl být srozumitelnější i pro člověka, který kód nepsal a nenavrhoval.

    • Myslíš, že člověk, který dokáže nekoncepčně „zprasit“ iBatis implementaci by odvedl kvalitnější práci při použití např. Hibernate? Já mám s Hibernate tedy jen malé zkušenosti, ale „zprasit“ se tam toho dá taky dost. Pokud navíc mají pod správou i návrh DB, tak si myslím, že to je jen z bláta do louže. Ale rozumím argumentu čitelnosti – na druhou stranu v Hibernate máš taky fůru selectů ve formě HQL v kódu, které mohou vypadat všelijak. Tady těžko soudit – museli bychom vidět kód napsaný od stejných indů třeba nad Hibernatem a pak bychom asi mohli dělat závěry.

      Naštěstí mám štěstí na kolegy, takže si na čitelnost jejich kódu nemohu stěžovat.

  2. Pravda – po nějaké době a přečtení dalších zdrojů uznávám, že můj výklad termínu ORM byl trochu jinde, než je konsens Java populace. Např. na WIKI (http://en.wikipedia.org/wiki/IBATIS) mají iBatis v sekci Persistence Framework. V dnešní době už bych pro iBatis použil jiný termín než ORM – pod tímto termínem si totiž už v dnešní době představí JPA like řešení.

  3. JJ Dagi souhlasím. Taky jsem váhal, jestli tam to slůvko ORM mám dát. Koneckonců oni v dokumenaci taky tvrdí, že „to není ORM“. Jenomže jsem se snažil pohledat definici ORM, a nikde jsem žádnou rozumnou nenašel. Takže kdybys o nějaké věděl, rád se vzdělám.

    Navíc jsem potřeboval do titulku něco úderného, co každému hned nahraje o čem bude řeč. Výraz „tak trochu opomíjený kompromis mezi JDBC a ORM“ je kapánek moc dlouhý. 🙂

    Mmch. ta prezentace je super. Škoda, že mi jsem ji nevygůglil, když jsem s iBatisem začínal. Vřele doporučuji ostatním.

  4. Nerekl bych, ze iBatis je klasicky ORM nastroj, urcite si na to nehraje. iBatis predstavuje velice dobry kompromis mezi ORM nastroji a klasickou praci s JDBC. Jeho pouziti bych doporucil tam, kde je obtizne pouzit ORM mapovani a nebo tam kde se nevyuziva jeho plna sila. Sveho casu jsem na nej mel education session, ze ktere zustala prezentace na http://sweb.cz/pichlik/ibatis/presentation.pdf, ale letmym proletnutim bych nerekl, ze nejak vyznamne prekracuje informace, ktere poskytuje tenhle pekny clanek ;-).