[Javalist] RegExp probléma: nem aposztrófok közé zártak felismerése

József Keresztes xesj.hu at gmail.com
2013. Dec. 1., V, 18:20:55 CET


Ok, tudok róla hogy a Spring ezt pl. megoldotta a JdbcTemplate-ben.
Igaz bevallom nem néztem bele a forráskódjukba hogy csinálták, de az sem
biztos hogy elegáns a megoldásuk :)

Joe


2013. december 1. 17:55 Gábor Lipták írta, <gabor.liptak at gmail.com>:

>
> http://www.mkyong.com/spring/spring-named-parameters-examples-in-simplejdbctemplate/
>
>
> 2013. december 1. 17:42 József Keresztes írta, <xesj.hu at gmail.com>:
>
>> Sziasztok !
>>
>> 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
>> egyszerű probléma megoldására. A problémát már régebben is felvetettem,
>> de akkor nem született igazi megoldás,
>> és mivel én sem oldottam meg azóta (mert nem elég elegánsak a
>> megoldások), újra próbálkozom.
>>
>> Arról van szó hogy egy SQL stringben kettősponttal jelöljük a
>> paramétereket például:
>>
>> String originalSql = "select * from telepules where kod = :x";
>>
>> 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:
>>
>> Matcher matcher = Pattern.compile(":[a-z_0-9]+",
>> Pattern.CASE_INSENSITIVE).matcher(originalSql);
>>
>> majd a matcher.find() -dal mindent meg lehet oldani, a "?"-es cserét stb.
>>
>> Azonban a probléma jelentkezik például egy ilyen sql-nél:
>>
>> String originalSql = "select to_char(datum,'hh24:mi:ss') from telepules
>> where kod = :x";
>>
>> 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
>> a feltételeknek, csak a :x -nek, csak az utóbbit kellene ?-re cserélni.
>>
>> 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.
>>
>> Ha van erre valakinek megoldása azt szívesen fogadnám.
>>
>> Joe
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20131201/44653bb3/attachment.html>


További információk a(z) Javalist levelezőlistáról