Www.fg.cz FG Forrest, a.s. Jan Novotný iBatis SqlMaps.

Slides:



Advertisements
Podobné prezentace
CIT Paměti Díl X.
Advertisements

Webové rozhraní pro přístup k databázi JIS Václav Lederbuch
Podpora personálních procesů v HR Vema Jaroslav Šmarda
© 2000 VEMA počítače a projektování spol. s r. o..
Systém Drupal a nejen školní weby
Přístup k databázím z WWW
Úvod do platformy Java EE
SQL Trace, Profiling, …a Tuning Lubomír Andrle
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
Ing. Jan Mittner Profiling aplikací 2. Zend_Cache 3. Optimalizace výkonu databáze 4. Optimalizace rychlosti načítání webu 5. Další tipy.
Správa projektů programem Ant Miroslav Beneš. Správa projektů programem Ant2 Obsah V čem spočívá správa projektů V čem spočívá správa projektů Varianty:
Spektra zatížení Milan Růžička 1 Dynamická pevnost a životnost
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Přednáška č. 5 Proces návrhu databáze
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
A4B33DS & X33MIS Zdeněk Kouba
Matematika – opakování 4
Vytvořil: Robert Döring
Úvod do databází Databáze.
Prezentace nového SQL modulu Mzdy a personalistika Pavel Pitaš Miloš Jirčík.
Tvorba webových aplikací
Databáze Jiří Kalousek.
Popis systému DBMAN. Obecná charakteristika Systém DBMAN vychází ze snahy maximálně zobecnit přístup k datům v jednoduchých databázích. Původním záměrem.
předpověď počasí na 14. května 2009 OBLAČNOST 6.00.
1 | Kaspersky Endpoint Security Přehled. 2 | Kaspersky Endpoint Security Kaspersky Endpoint Security for Windows Kaspersky Endpoint Security for Mac Kaspersky.
PHP – Základy programování
Jaroslav Šnajberk, Přemek Brada
Konference SI Praha Ladislav Přívozník is:energy czech a.s.
Relační databáze.
Tomáš Urych, ESO9 Intranet a.s.
Téma: ABSOLUTNÍ HODNOTA CELÝCH ČÍSEL 2
Vypracoval: Ondřej Dvorský Třída: VIII.A
Pokroky v technologiích (1) Od Zen reportů ke grafickému návrháři DeepSee reportů.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Informatika pro ekonomy II přednáška 10
SIPVZ – Státní informační politika ve vzdělávání w w w. e - g r a m. c z E-gram E-gram Informační a komunikační web SIPVZ 1. Původní web:
1 © Mediaresearch, a.s., 2008 NetMonitor a AdMonitoring Výsledky za říjen 2008.
Navrhované předměty pro OI a další zimní semestr.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.1 Lucián Piller Intranet HR.
1 Elektronická evidence paleontologických sbírek na příkladu paleontologických kolekcí České geologické služby Pavel Bokr, Petr Budil, Jan Sedláček, Marika.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
Využití ZEN reportů ve Facility Managementu Petr Nádvorník
Access Vysvětlení pojmu databáze - 01
Úvod do PHP IZI 228.
Databázové systémy Informatika pro ekonomy, př. 18.
2005 Adobe Systems Incorporated. All Rights Reserved. 1 Inteligentní PDF formuláře Vladimír Střálka Territory Account Manager Adobe Řešení pro.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
KL Free IS Informační systém pro regionální síť KLfree.net.
IDEA Web Systém 5.0 Pavel Bezstarosti IDEA spol. s r.o
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 6.
PA165: Úvod do Java EE Petr Adámek.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Databázové aplikace v Delphi
Popis systému DBMAN (KEVIS). Obecná charakteristika Systém DBMAN vychází ze snahy maximálně zobecnit přístup k datům v jednoduchých databázích. Původním.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Perzistence XML dat Kamil Toman
Objektově relační mapování - ORM. Obsah Co je to ORM Využití ORM Dědičnost –jednoduchý příklad –metody jak dědičnost popsat pomocí relační databáze Vztahy.
Petr Puš SW Architekt Unicorn a.s. Microsoft C# MVP.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Kapitola 5: Úvod do analytických technologií Webu Vítězslav Šimon (SIM0047) Adaptivní webové systémy (AWS)
Unix a Internet 9. SQL server
Lazy load Použity informace z knihy Patterns of Enterprise Application Architecture od M. Fowlera Jan Sládek.
Informatika pro ekonomy přednáška 8
Vytvořil: Robert Döring
Dfdfdf.
Transkript prezentace:

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

iBatis - ORM / DataMapper 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 2 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í

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

Dotazování 4

ResultMap – mapování výstupu na objekty 5

Diskriminátory 6

Manipulace s daty 7 SqlMap.xml Dao.java

Parameter map – mapování objektů na statementy 8

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

Problematika 1 + N dotazů 10

Problematika 1 + N dotazů – inner join 11 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) vazba 1:1 vazba 1:N

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

Dynamické dotazy 13

Dávkové zpracování 14 vždy musí být uvnitř explicitní transakce vždy se vztahuje pouze na statementy stejného druhu, vložení odlišného statementu vykoná dávku a započne dávku novou pozor na rozsáhlé transakce (ideální je provádět commit po určitém počtu statementů) commit transakce implicitně provádí executeBatch(), pokud tento nebyl dosud zavolán executeBatch() vrátí počet aktualizovaných řádků, nicméně to nemusí být se všemi JDBC ovladači pravda

Cache 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 15

Spring Framework - integrace prvotřídní podpora pro iBatis využívá DataSource bean definované v aplikačním kontextu participuje na transakcích spravovaných Springem Spring zajišťuje překlad checkovaných vyjímek SqlException na necheckované DataAccessException 16

iBator generátor kódu pro iBatis z existující relační struktury: vygeneruje kód POJO class SqlMap.xml obsahující CRUD dotazy DAO interface a implementaci (podpora pro Spring variantu) může být použit jednorázově na začátku projektu opakovaně i v rámci build cyklu Podporované use-case Command-line Ant Java API 17

iBatis v. 3.0 – na spadnutí 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

19 Užitečné odkazy (iBatis homepage) (iBator) (Myšlenky dne Otce Fura) (Web společnosti FG Forrest - články)