[Javalist] 'Pattern'

istvan.ketler at lhsystems.com istvan.ketler at lhsystems.com
2012. Jan. 3., K, 17:13:26 CET


Amikor még használtam egyszer régen JDBCt, soha nem írtam négy-öt változónál többet egy SQL utasításba sem, inkább használtam néhány metódust a feloldásokra. Szóval 13 változó egy SQL utasításban nekem kicsit balos túlzásnak tetszik...

 

De ha mégis ilyet akarsz, akkor vagy a mások által javasolt tokenizálás lehet megoldás, vagy maradsz a kérdőjelnél, és szigorú szintaxis szerint írod az SQL utasításaidat. De ha viszonylag jól tipizálható, akkor írhatsz metódusokat is, amelyek visszaadják az összerakott stringet; láttam már ilyet, és nem volt zavaró, könnyen karbantartható volt a kód (querybuilder metódus).

 

Üdvözlettel,

 

Iván

István Ketler
Team Leader 

Lufthansa Systems Hungaria Kft. 
Development Center Pest 
- Team "Schedule & Revenue Management"
- Team "Business Intelligence & Database Solutions"
Neumann János u. 1/e
1117 Budapest
Hungary 

Tel: +36 1 887-2815 
Fax: +36 1 887-2977
Mobile: +36 30 600-4936 

Room: Infopark E, Room LH1-31 

e-mail: istvan.ketler at lhsystems.com 
Internet: www.LHsystems.hu <http://www.lhsystems.hu/> 

 

From: javalist-bounces at lists.javaforum.hu [mailto:javalist-bounces at lists.javaforum.hu] On Behalf Of Keresztes Jozsef
Sent: Tuesday, January 03, 2012 5:03 PM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

Mert a "?" nagyon béna megoldás a JDBC-ben mivel szerepelhet egy sql stringben 20 kérdőjel,

és azt mondod hogy a 13. legyen behelyettesítve XY-nal.

Képzeld hogy ha átalakítod az sql-edet és bejön közé mégegy "?" rossz az egész J

Én máig csodálkozok hogy maradt ez az ősrégi ?-es megoldás.  

 

From: istvan.ketler at lhsystems.com [mailto:istvan.ketler at lhsystems.com] 
Sent: Tuesday, January 03, 2012 4:56 PM
To: javalist at lists.javaforum.hu
Subject: Re: [Javalist] 'Pattern'

 

Az első és utolsó emailed között eltelt 19 perc (eddig), ennél hamarabb tudtál volna írni egy static metódust amelyik elvégzi neked ezt az egyszerű mutatványt. Pattern.compile(..).... helyett aztán használhatnád ezt a metódust nagyjából ugyanúgy.

 

Amúgy miért nem jó a ?, miért kell helyette :?

István Ketler
Team Leader 

Lufthansa Systems Hungaria Kft. 
Development Center Pest 
- Team "Schedule & Revenue Management"
- Team "Business Intelligence & Database Solutions"
Neumann János u. 1/e
1117 Budapest
Hungary 

Tel: +36 1 887-2815 
Fax: +36 1 887-2977
Mobile: +36 30 600-4936 

Room: Infopark E, Room LH1-31 

e-mail: istvan.ketler at lhsystems.com 
Internet: www.LHsystems.hu <http://www.lhsystems.hu/> 

 

 

Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Hungaria Kft, Budapest, Fövarosi Birosag 01-09-463417
Geschaeftsfuehrung / Management Board: Monika Houck

 

From: javalist-bounces at lists.javaforum.hu [mailto:javalist-bounces at lists.javaforum.hu] On Behalf Of Keresztes Jozsef
Sent: Tuesday, January 03, 2012 4:40 PM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

JDBC-ben csak "?"-lel lehet a változókat jelölni, ehelyett lenne a ":"-os váltózó használat:

 

UPDATE xxx SET datum = :date WHERE id = :id

 

ez így szép és jó, meg tudom találni a ":"-os változókat, helyettesítem "?"-re, megkapja 

a JDBC az így átalakított stringet stb stb, minden jó, csak az a baj amikor a ":" nem jelent változót,

mert egy stringen belül van. Ekkor nem kell "?"-re alakítani...   

 

From: Peter Verhas [mailto:peter at verhas.com] 
Sent: Tuesday, January 03, 2012 4:31 PM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

Ez csak azokat veszi ki, ahol az aposztróf közvetlenül a : előtt vagy mögötte van. A ' barmi : barmi ' esetén nem.

 

A look ahead és look back patternekkel az a ban, hogy lehet előtte és utána is ', csak a paritást is számolnia kellene. Ezért én sem küzdenék sokáig pattern-nel, inkább szétvágnám a stringet, utána keresnék, és aztán összefűzném.

 

Amúgy mire kell?

 

--
Verhás Péter
ügyvezető
Verhás & Verhás Szoftver Manufaktúra Kft.
peter at verhas.com
+36(30)9306805
skype: verhas

 

 

 

On 2012.01.03., at 16:24, Istvan Bencze wrote:

 

Szia!

 

 

Ezt a mintát próbáltad már?


[^']:[^']

 


Üdv,

Bencze István

 

2012/1/3 OSTYÁNI Péter <panteros at dev-labs.com>

Szia!

Szerintem akkor neked a lookahead/lookbehind patternek kellenek:

http://www.regular-expressions.info/lookaround.html

 

üdv: ostya

 

On Tue, 3 Jan 2012 16:10:27 +0100, Keresztes Jozsef wrote:

	Sziasztok !
	
	Egy sql stringen belül keresek egy másik stringet, a Matcher és Pattern osztályok segítségével,
	egyszerüsítsük a dolgot, csak a ":" karaktert keressük: 
	
	Matcher matcher = Pattern.compile(":").matcher(sqlString);
	
	A probléma azzal van hogy csak azokat a ":" karaktereket szeretném megkeresni az sql stringben ami nem aposztrófok között van például:
	
	SELECT 'ez nem'':kell' FROM valami WHERE id = :id and ':' = 'x'
	
	Vagyis itt a 2. kettőspont lenne csak találat a többi nem.
	Valaki foglalkozott már ilyen keresési minta megírásával ? 
	Én egyelőre nem tudom elképzelni... 
	
	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

 

_______________________________________________
Javalist mailing list
Javalist at lists.javaforum.hu
http://lists.javaforum.hu/mailman/listinfo/javalist

 


 
Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Hungaria Kft, Budapest, Fövarosi Birosag 01-09-463417
Geschaeftsfuehrung / Management Board: Monika Houck


--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120103/e2f87036/attachment.html>


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