1 / 15

FG Forrest, a.s. Jan Novotný iBatis SqlMaps

FG Forrest, a.s. Jan Novotný iBatis SqlMaps. iBatis - ORM / DataMapper. JDBC 3.0 Žádné mapování Klady maximální výkon maximální kontrola / flexibilita jednoduchost rychlý setup jednoduché navázání na existující DB stačí znalost SQL Zápory minimální produktivita

nuala
Download Presentation

FG Forrest, a.s. Jan Novotný iBatis SqlMaps

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FG Forrest, a.s.Jan NovotnýiBatis SqlMaps

  2. iBatis - ORM / DataMapper • JDBC 3.0 • Žádné mapování • Klady • maximální výkon • maximální kontrola / flexibilita • jednoduchost • rychlý setup • jednoduché navázání na existující DB • stačí znalost SQL • Zápory • minimální produktivita • nutnost překopírovávání parametrů do Statementu • nutnost překopírovávání dat z ResultSetu do POJO • nutnost správy zdrojů • závisí na použité DB • žádná cache • velmi problémová údržba • JPA /Hibernate • Mapování objektů na tabulky • Klady • zakrytí způsobu práce s relačními daty (není přímo nutné ovládat SQL) • vysoká produktivita • přenositelnost • velmi efektivní generování relačního modelu z OO • efektivní cache • relativně jednoduchá údržba (refactoring) • Zápory • ztráta přímé kontroly • velmi složitý • nutná znalost HQL • problematické použití při komplikovaných dotazech • problémy s dávkovým zpracováním • problematické navázání na existující DB • díky komplexitě přináší řadu náročných problémů k řešení www.fg.cz • iBatis • Mapování objektů na SQL • Klady • minimalizace rutinní práce s JDBC • kontrola / flexibilita • jednoduchost • rychlý setup • odpadá správa zdrojů • cachování • jednoduché navázání na existující DB • stačí znalost SQL • Zápory • zůstává stále nějaká rutinní práce • závisí na použité DB • náročnější údržba

  3. Princip fungování • podpora základních typů přístupu k DataSource • Simple – vlastní jednoduchá implementace DB poolingu • DBCP – Jakarta DatabaseConnection Pool • JNDI – získání DataSource objektu z JNDI • podpora transakcí • JDBC – connectioncommit() / rollback() • JTA – přístup k UserTransaction objektu via JNDI • External – iBatis neprovede commit / rollback – zajištění tohoto je na vlastní aplikaci www.fg.cz

  4. Dotazování www.fg.cz

  5. ResultMap – mapování výstupu na objekty www.fg.cz

  6. Manipulace s daty SqlMap.xml Dao.java www.fg.cz

  7. Parameter map – mapování objektů na statementy www.fg.cz

  8. Manipulace s daty – automaticky generované klíče www.fg.cz 1. typ – pregenerované klíče (Oracle, …) 2. typ – postgenerované klíče (MySQL, MS SQL, …)

  9. Problematika 1 + N dotazů www.fg.cz

  10. Problematika 1 + N dotazů – inner join vazba 1:1 vazba 1:N • obvykle nejlepší z řešení • pokud víme, že budeme u každého produktu přistupovat ke kategorii • sloupce pro join jsou oindexované • je velké množství kategorií respektive produktů (nevyplatí se cachovat kategorie podle id) www.fg.cz

  11. Problematika 1 + N dotazů – cache / lazy subselect vazba 1:1 vazba 1:N !!! cglib-full-2-0-rc2.jar !!! www.fg.cz

  12. Dynamické dotazy www.fg.cz

  13. Cache www.fg.cz ReadOnly vs. Read/Write = pro všechny uživatele vs. pro session Read/Write + serializable = vyšší výkon, protože objekty jsou cachované pro všechny uživatele, ale konkrétní instance, se kterými pracujeme jsou deserializované kopie

  14. iBatis v. 3.0 – na spadnutí www.fg.cz • Interface binding • generátor DAO tříd • Víceúrovňová konfigurace • konvence • anotace (překrývá konvenci) • XML (překrývá anotace i konvenci) • Java API (překrývá vše) • Zjednodušená konfigurace cache • Možnost tvorby dynamických SQL dotazů Java kódem • Kdy? Dle dostupných informací 2Q 2009

  15. Užitečné odkazy • http://ibatis.apache.org/ (iBatis homepage) • http://ibatis.apache.org/ibator.html (iBator) • http://blog.novoj.net (Myšlenky dne Otce Fura) • http://www.fg.cz (Web společnosti FG Forrest - články) Děkuji za pozornost www.fg.cz

More Related