[Javalist] 'Pattern'

istvan.ketler at lhsystems.com istvan.ketler at lhsystems.com
2012. Jan. 4., Sze, 11:01:15 CET


Hát mondjuk....

 

van egy data object, amely nagy valószínűséggel tartalmaz a beszúrandó bigyók közül többet. Mondjuk van három ilyen data object. Akkor az insert az egy olyan metódus, amelynek három paramétere van (a három data object). Mindegyik data objectnek van egy prepareInsert metódusa, amelyik visszaadja a saját „?,?,...” sorozatát, és egy supplyInsert metódusa, amely paraméterként kap egy prepared statement-et, meg egy számot (indexet), hogy honnan kezdje beilleszteni a saját paramétereit, és visszatér az új indexszel. Szóval a hívás helyén:

 

createInsert(szemely, auto, esemeny)

 

PreparedStatement createInsert(DataObject d...) megcsinálja az sql utasítást, miközben meghívja a data objectok metódusait az összerakáshoz.

 

Ez nekem szebbnek tűnik, mint

 

INSERT INTO ... VALUES(:vnev, :k1nev, :k2nev, :irszam, :varos, ....)

 

és valahol valamilyen hozzárendelés, hogy „lookup(„:xxx”)-edik paraméter legyen y.

 

Persze izlesek es pofonok...

 

Ü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: Wednesday, January 04, 2012 10:49 AM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

Ezzel a ?-el azért vitatkoznék. Most képzeld el hogy van egy ilyen parancsod:

 

INSERT INTO … VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)

 

majd azt mondod hogy a 13. ? legyen XY.

De ugyanezt UPDATE-tel is elképzelheted. 

Tehát úgy hivatkozni hogy az N. kérdőjel az nagyon durva.

 

From: Gábor Garami [mailto:gabor.garami at hron.me] 
Sent: Wednesday, January 04, 2012 10:28 AM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

Persze, mert reszben fel akarod talalni a kereket (spring), reszben meg valojaban nem sokkal szebb a te megoldasod, mint a kerdojelezes. Ha valoban a hibak elkerulese a cel, akkor en inkabb a builder pattern fele mennek el, annal biztonsagosabb nem kell.

Ezt a levelet telefonról adták fel ezért esetenként ékezethibákat tartalmazhat.

Garami Gábor
E-mail: gabor.garami at hron.me
Web: http://hron.me
Skype: hron84
MSN: hrgy at vipmail.hu

2012.01.04. 9:31, "Keresztes Jozsef" <jkeresztes at vati.hu> ezt írta:

S mivel valóban nagyon ritkán jön elő egy sql-ben apósztrófok között a kettőspont, megkerülhető egy CHR(58) használatával.

Arra is tudnék megoldást hogy én buherálok és vizsgálgatok aposztrófokat oda-vissza (stringet vágok stb), 

de a szép megoldás az lett volna (ezért kérdeztelek titeket) hogy csak annyi változtatással hogy a pattern-t 

kiegészítem és egy árva plusz sor sem kerül be a java kódba megoldható-e. 

Tényleg megfogalmazható-e csupán a pattern átírásával ?

Aztán sajnos elment a dolog más irányba is (Spring,… )

 

From: Gábor Garami [mailto:gabor.garami at hron.me] 
Sent: Tuesday, January 03, 2012 7:28 PM
To: Java lista
Subject: Re: [Javalist] 'Pattern'

 

Bocs, hogy belepof, de a feladatra teljesen jo a regex, csak a feladatfelvetes bena volt.

A kigyujtesre a regex: (:[a-z0-9])

Az idezojelek kozti reszeket meg siman uritheted.

Bar megmondom oszinten, ilyen string ertelmes sql queryben nem fordul elo, idezojelek kozott sem. Mivel preprocessben hasznalod fel a regexet, igy ilyenkor meg nincs untrusted user input, utana meg mar mindegy. Csak magadat kell korlatoznod, hogy ne akarj olyat irni, hogy SELECT * FROM valami WHERE ':bla' = :bla. IMHO ez igy kb. sosem fordul elo.

A tokenizalas jo otlet, a regexszel kigyujtott talalatokat vegig lehet keresgelni.

Ezt a levelet telefonr&#968737;dt᫠fel ez鲴 esetenk鮴 髥zethib᫡t tartalmazhat.

Garami G᢯r
E-mail: gabor.garami at hron.me
Web: http://hron.me
Skype: hron84
MSN: hrgy at vipmail.hu

2012.01.03. 18 <tel:2012.01.03.%2018> :11, "Tam᳠Magyar" <magyusz at gmail.com> ezt ?a:

Nem tudom, hogy erre ez a legjobb megoldᳬ de StreamTokenizer helyett
ajᮬom ezt:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
ɮ mᲠsikerrel haszn᬴am.

Magyusz

2012/1/3 Suller Andras <suller.andras at gmail.com>:
> 2012/1/3 Keresztes Jozsef <jkeresztes at vati.hu>:
>> Sziasztok !
>>
>> Egy sql stringen bell keresek egy mᳩk stringet, a Matcher 鳠Pattern osztᬹok seg?駩vel,
>> egyszers?k a dolgot, csak a ":" karaktert keressk:
>>
>> Matcher matcher = Pattern.compile(":").matcher(sqlString);
>>
>> A probl魡 azzal van hogy csak azokat a ":" karaktereket szeretn魠megkeresni az sql stringben ami nem aposztr&#945131; k??t van p鬤ᵬ:
>>
>> SELECT 'ez nem'':kell' FROM valami WHERE id = :id and ':' = 'x'
>>
>> Vagyis itt a 2. kett??nt lenne csak talᬡt a t?? nem.
>> Valaki foglalkozott mᲠilyen keres鳩 minta meg?sᶡl ?
>> ɮ egyel??nem tudom elk鰺elni...
>
> Regen hasznaltam mar, de azt hiszem a StreamTokenizer az, ami kezeli
> ezt a problemat. Marmint hogy az '...' szovegreszt egy tokenkent adja
> vissza, igy meguszod a regularis kifejezest.
>
> Andras
> _______________________________________________
> 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/20120104/0d51b896/attachment.html>


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