<div dir="ltr"><a href="http://www.mkyong.com/spring/spring-named-parameters-examples-in-simplejdbctemplate/">http://www.mkyong.com/spring/spring-named-parameters-examples-in-simplejdbctemplate/</a><br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2013. december 1. 17:42 József Keresztes írta, <span dir="ltr"><<a href="mailto:xesj.hu@gmail.com" target="_blank">xesj.hu@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>Sziasztok !</div><div><br></div><div>Megnéztem és mivel úgy kb. 300 ember van ezen a levelezőlistán, ennyi embernek kell hogy legyen frappáns ötlete egy látszólag </div><div>egyszerű probléma megoldására. A problémát már régebben is felvetettem, de akkor nem született igazi megoldás,</div>
<div>és mivel én sem oldottam meg azóta (mert nem elég elegánsak a megoldások), újra próbálkozom.</div><div><br></div><div>Arról van szó hogy egy SQL stringben kettősponttal jelöljük a paramétereket például:</div><div><br>
</div><div><font face="courier new, monospace" style="background-color:rgb(243,243,243)" color="#0000ff">String originalSql = "select * from telepules where kod = :x";</font></div><div><br></div><div>Mivel a JDBC-ben nincs ":x" ezért "?" -re kell alakítani. Erre a megoldás egyszerű, régen alkalmazom a következő kódot: </div>
<div><br></div><font color="#0000ff" face="courier new, monospace">Matcher matcher = Pattern.compile(":[a-z_0-9]+", Pattern.CASE_INSENSITIVE).matcher(originalSql);</font><br><div><br></div><div>majd a matcher.find() -dal mindent meg lehet oldani, a "?"-es cserét stb.</div>
<div><br></div><div>Azonban a probléma jelentkezik például egy ilyen sql-nél:</div><div><br></div><div><div><font color="#ff0000" face="courier new, monospace">String originalSql = "select to_char(datum,'hh24:mi:ss') from telepules where kod = :x";</font></div>
</div><div><br></div><div>Sajnos az előző pattern-es megoldás nem tudja figyelembe venni hogy aposztrófok között van a :mi és a :ss ezeknek nem kellene megfelelni </div><div>a feltételeknek, csak a :x -nek, csak az utóbbit kellene ?-re cserélni.</div>
<div><br></div><div>Szóval számomra az lenne az elfogadható frappáns megoldás ha ezt kizárólag a regexp kifejezés átírásával lehetne megoldani.</div><div><br></div><div>Ha van erre valakinek megoldása azt szívesen fogadnám.</div>
<div><br></div><div>Joe</div><div><br></div></div>
<br>_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br></blockquote></div><br></div>