<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Podcast: Záznam z přednášky iBatis SqlMaps</title>
	<atom:link href="http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/</link>
	<description>Dává je jen zřídka, obvykle jim není moc rozumět a často vám ani k ničemu nejsou.</description>
	<lastBuildDate>Wed, 21 Jul 2010 16:31:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Otec Fura</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-12971</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Tue, 06 Oct 2009 11:48:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-12971</guid>
		<description>Ahoj Tomáši, tahle přednáška vznikla ještě v době, kdy o iBatisu 3 toho ještě moc známo nebylo. Vycházel jsem především z Whitepaperu, který byl na téma iBatis 3 zpracován. Na blogu mám teď dva daleko aktuálnější články o třetí verzi iBatisu:

http://blog.novoj.net/2009/08/16/ibatis-30-preview-cast-prvni/
http://blog.novoj.net/2009/08/23/ibatis-30-preview-cast-druha/

V XML konfiguraci pak zcela běžně používají pojmenovaných parametrů víc. Pročítal jsem mail thread a vidím problémy s anotacemi. V Javě se v reflexi bohužel nedají číst názvy parametrů metody - tj. iBatis nemá z čeho zjistit názvy parametrů, které jsou následně v anotaci používány. Proto zatím umožňují pouze jeden parametr. Jediné dvě možné řešení je tvorba extra anotace, nebo používání indexů - a to ani jedno není moc komfortní. Dalším možností by bylo použít knihovnu Paranamer (http://paranamer.codehaus.org/) od Codehausu, ale ani ta není 100% - má například problémy s interfacy. Uvidíme, jak si s issue poradí Clinton Begin.

Co se týká toho, že anotace plnohodnotně pokrývají možnosti XML - vycházím z toho, co o tom tvrdí autoři. Pokud to není plnohodnotné, mělo by se to tomu blížit.

Nicméně máš pravdu, co se týká 3tí verze, mám zatím limitované vědomosti.</description>
		<content:encoded><![CDATA[<p>Ahoj Tomáši, tahle přednáška vznikla ještě v době, kdy o iBatisu 3 toho ještě moc známo nebylo. Vycházel jsem především z Whitepaperu, který byl na téma iBatis 3 zpracován. Na blogu mám teď dva daleko aktuálnější články o třetí verzi iBatisu:</p>
<p><a href="http://blog.novoj.net/2009/08/16/ibatis-30-preview-cast-prvni/" rel="nofollow">http://blog.novoj.net/2009/08/16/ibatis-30-preview-cast-prvni/</a><br />
<a href="http://blog.novoj.net/2009/08/23/ibatis-30-preview-cast-druha/" rel="nofollow">http://blog.novoj.net/2009/08/23/ibatis-30-preview-cast-druha/</a></p>
<p>V XML konfiguraci pak zcela běžně používají pojmenovaných parametrů víc. Pročítal jsem mail thread a vidím problémy s anotacemi. V Javě se v reflexi bohužel nedají číst názvy parametrů metody &#8211; tj. iBatis nemá z čeho zjistit názvy parametrů, které jsou následně v anotaci používány. Proto zatím umožňují pouze jeden parametr. Jediné dvě možné řešení je tvorba extra anotace, nebo používání indexů &#8211; a to ani jedno není moc komfortní. Dalším možností by bylo použít knihovnu Paranamer (<a href="http://paranamer.codehaus.org/" rel="nofollow">http://paranamer.codehaus.org/</a>) od Codehausu, ale ani ta není 100% &#8211; má například problémy s interfacy. Uvidíme, jak si s issue poradí Clinton Begin.</p>
<p>Co se týká toho, že anotace plnohodnotně pokrývají možnosti XML &#8211; vycházím z toho, co o tom tvrdí autoři. Pokud to není plnohodnotné, mělo by se to tomu blížit.</p>
<p>Nicméně máš pravdu, co se týká 3tí verze, mám zatím limitované vědomosti.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomáš Procházka</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-12969</link>
		<dc:creator>Tomáš Procházka</dc:creator>
		<pubDate>Tue, 06 Oct 2009 05:56:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-12969</guid>
		<description>Napsal jsem na to Issue:
http://issues.apache.org/jira/browse/IBATIS-669

Dále není pravda, že anotace jsou plnohodnotné XML, rozhodně nejsou.</description>
		<content:encoded><![CDATA[<p>Napsal jsem na to Issue:<br />
<a href="http://issues.apache.org/jira/browse/IBATIS-669" rel="nofollow">http://issues.apache.org/jira/browse/IBATIS-669</a></p>
<p>Dále není pravda, že anotace jsou plnohodnotné XML, rozhodně nejsou.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomáš Procházka</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-12968</link>
		<dc:creator>Tomáš Procházka</dc:creator>
		<pubDate>Tue, 06 Oct 2009 05:38:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-12968</guid>
		<description>Na Slidu 18 je v Mapperu toto:



Nepodařilo se mi nikde najít zmíňku o tom, že je toto podporováno (ani ve verzi 3 beta), dokonce ani v doctypu parameters není. I když bylo by to krásně a je to to poslední, co mi v iBatisu chybí, abych ho mohl začít používat.

Na podobné téma jsem se ptal v konferenci:
http://www.mail-archive.com/user-java@ibatis.apache.org/msg14807.html</description>
		<content:encoded><![CDATA[<p>Na Slidu 18 je v Mapperu toto:</p>
<p>Nepodařilo se mi nikde najít zmíňku o tom, že je toto podporováno (ani ve verzi 3 beta), dokonce ani v doctypu parameters není. I když bylo by to krásně a je to to poslední, co mi v iBatisu chybí, abych ho mohl začít používat.</p>
<p>Na podobné téma jsem se ptal v konferenci:<br />
<a href="http://www.mail-archive.com/user-java@ibatis.apache.org/msg14807.html" rel="nofollow">http://www.mail-archive.com/user-java@ibatis.apache.org/msg14807.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ex1</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6848</link>
		<dc:creator>Ex1</dc:creator>
		<pubDate>Wed, 11 Mar 2009 11:25:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6848</guid>
		<description>Dobře udělané a informativní. Díky.</description>
		<content:encoded><![CDATA[<p>Dobře udělané a informativní. Díky.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: benzin</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6846</link>
		<dc:creator>benzin</dc:creator>
		<pubDate>Wed, 11 Mar 2009 07:30:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6846</guid>
		<description>P.S.: Jeste k tomu ## a $$ je dobre podotknout ze nejenom SQL Injection to resi. Resi to taky kompilaci SQL dotazu a delku logu. Kdyz totiz rvete hodnoty primo do SQL musi serve pokazde znovu kompilovat dotaz a pokazde si o nem udela zapis do logu, kdezto kdyz pouzijete ?, tak ke kompilaci dojde (v idealnim pripade) jenom jednou a i logu se tim hodne ulevi.</description>
		<content:encoded><![CDATA[<p>P.S.: Jeste k tomu ## a $$ je dobre podotknout ze nejenom SQL Injection to resi. Resi to taky kompilaci SQL dotazu a delku logu. Kdyz totiz rvete hodnoty primo do SQL musi serve pokazde znovu kompilovat dotaz a pokazde si o nem udela zapis do logu, kdezto kdyz pouzijete ?, tak ke kompilaci dojde (v idealnim pripade) jenom jednou a i logu se tim hodne ulevi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Otec Fura</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6835</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Tue, 10 Mar 2009 12:11:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6835</guid>
		<description>Vypnul jsem je. Kdysi se mi zdály jako dobrej nápad, ale už se mi taky moc nepozdávají - tvůj komentář byla poslední kapka ;-)</description>
		<content:encoded><![CDATA[<p>Vypnul jsem je. Kdysi se mi zdály jako dobrej nápad, ale už se mi taky moc nepozdávají &#8211; tvůj komentář byla poslední kapka <img src='http://blog.novoj.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lzap</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6832</link>
		<dc:creator>lzap</dc:creator>
		<pubDate>Tue, 10 Mar 2009 11:40:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6832</guid>
		<description>Ty ajaxový SNAPSHOTY jsou odporný, jak to vypnout? Furt se mi to tady objevuje.

Pěkná přednáška.</description>
		<content:encoded><![CDATA[<p>Ty ajaxový SNAPSHOTY jsou odporný, jak to vypnout? Furt se mi to tady objevuje.</p>
<p>Pěkná přednáška.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Otec Fura</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6807</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Mon, 09 Mar 2009 16:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6807</guid>
		<description>No ten #parameter# je vždy bezpečný - jenomže ho nemůžeš použít na všech místech v tom SQL - pokud potřebuješ napsat dynamickou ORDER BY klauzuli, tak se bez $parameter$ neobejdeš. Skutečně si to stačí v hlavě představit, jak to bude přeložené do toho JDBC zápisu. Tzn. k výše uvedenému zápisu - není možné zapsat SQL:

select * from TABULKA order by ? ?

To by JDBC zařvalo - to akceptuje parametry jen skutečně na místech, které jsou pro parametry platné (tzn. např where podmínky &quot;where sloupec = ?&quot; apod.). 

Pro ty dolarové zápisy je teda dobré to dělat tak, že pokud ti jde parametr z url, tak si při přípravě vstupů do mapované query iBatisu uděláš:

if (&quot;asc&quot;.equalsIgnoreCase(urlParameter)) {
   iBAtisParameters.put(&quot;type&quot;, &quot;asc&quot;));
} else {
   iBAtisParameters.put(&quot;type&quot;, &quot;desc&quot;));
}

Je to sice trošku víc psaní, ale jednodušeji to podle mého nejde, aniž by ses nevystavil SQL Injection. Na druhou stranu, tohle by asi iBatis nemohl dost dobře suplovat.</description>
		<content:encoded><![CDATA[<p>No ten #parameter# je vždy bezpečný &#8211; jenomže ho nemůžeš použít na všech místech v tom SQL &#8211; pokud potřebuješ napsat dynamickou ORDER BY klauzuli, tak se bez $parameter$ neobejdeš. Skutečně si to stačí v hlavě představit, jak to bude přeložené do toho JDBC zápisu. Tzn. k výše uvedenému zápisu &#8211; není možné zapsat SQL:</p>
<p>select * from TABULKA order by ? ?</p>
<p>To by JDBC zařvalo &#8211; to akceptuje parametry jen skutečně na místech, které jsou pro parametry platné (tzn. např where podmínky &#8220;where sloupec = ?&#8221; apod.). </p>
<p>Pro ty dolarové zápisy je teda dobré to dělat tak, že pokud ti jde parametr z url, tak si při přípravě vstupů do mapované query iBatisu uděláš:</p>
<p>if (&#8220;asc&#8221;.equalsIgnoreCase(urlParameter)) {<br />
   iBAtisParameters.put(&#8220;type&#8221;, &#8220;asc&#8221;));<br />
} else {<br />
   iBAtisParameters.put(&#8220;type&#8221;, &#8220;desc&#8221;));<br />
}</p>
<p>Je to sice trošku víc psaní, ale jednodušeji to podle mého nejde, aniž by ses nevystavil SQL Injection. Na druhou stranu, tohle by asi iBatis nemohl dost dobře suplovat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jety</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6804</link>
		<dc:creator>Jety</dc:creator>
		<pubDate>Mon, 09 Mar 2009 14:30:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6804</guid>
		<description>Ahoj Honzo, díky za přednášku. Mám dotaz, jakou má výhodu syntaxe $parameter$ oproti #parameter#.  Jinými slovy zda se dá obecně říct &quot;Vždy používejte syntaxy #parameter# a nikdy $parameter$, abyste neriskovali SQL injection?&quot;.

Btw. Ten powerpoint je příjemně přehledný, tuším, že to dalo dost práce.
Jety</description>
		<content:encoded><![CDATA[<p>Ahoj Honzo, díky za přednášku. Mám dotaz, jakou má výhodu syntaxe $parameter$ oproti #parameter#.  Jinými slovy zda se dá obecně říct &#8220;Vždy používejte syntaxy #parameter# a nikdy $parameter$, abyste neriskovali SQL injection?&#8221;.</p>
<p>Btw. Ten powerpoint je příjemně přehledný, tuším, že to dalo dost práce.<br />
Jety</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Petr</title>
		<link>http://blog.novoj.net/2009/03/04/podcast-zaznam-z-prednasky-ibatis-sqlmaps/comment-page-1/#comment-6750</link>
		<dc:creator>Petr</dc:creator>
		<pubDate>Fri, 06 Mar 2009 12:33:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=408#comment-6750</guid>
		<description>Super přednáška. Potvrzuji, že učící křivka se počítá na hodiny. Používal jsem iBatis ve spojení se springem, který také řídil transakce a nezaznamenal jsem jediný problém. Jako náhrada JdbcTemplate je ideální.</description>
		<content:encoded><![CDATA[<p>Super přednáška. Potvrzuji, že učící křivka se počítá na hodiny. Používal jsem iBatis ve spojení se springem, který také řídil transakce a nezaznamenal jsem jediný problém. Jako náhrada JdbcTemplate je ideální.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
