[Java lista] Sql builder

Böszörményi Péter zmblevlist at gmail.com
2009. Már. 25., Sze, 19:34:52 CET


On Tue, 24 Mar 2009 17:21:04 +0100, Zoltán Gáspár  
<zoltan.gaspar at gmail.com> wrote:

> Sziasztok,
>
> érdekes ez a példa. Mindjárt az értékek közvelten belevágása az sql  
> mondatba
> (sql injection mondjuk a fileName paramétereknél?), nem próbáltatok
> PreparedStatementet alkalmazni? Sok egyéb szempontból is hasznos lehet a  
> db
> oldaláról nézve a dolgot, nincs '-os értékre hiba, security, performance,
> stb.

Ez a kodreszlet az adminisztracios oldalbol szarmazik. Nyilvan  
szerencsetlen megoldas az ilyesmi, de a sebesseget nem ez befolyasolja  
(eleg nagymennyisegu adaton kell a dbnek atragnia magat), es kelloen  
alacsony a security kockazat ahhoz, hogy ez igy mukodjon. Termeszetesen  
nekem ez nagyon nem szimpatikus, de ez igy fog maradni.

>
> Az SQL-ben a szükséges ágakat nem lehetne úgy megoldani, hogy mindig
> szerepelnek, csak adott paraméterre (null) nem érdekes az értékül? Pl  
> shop
> paraméter esetén:
>
> SELECT ...
> FROM ...
> WHERE (? IS NULL OR afrid = ?)
> AND ...
>
> Mindkét helyre a java shop változót mindenképp bindolod (pl
> pstmt.setObject).
>
> Kicsit talán lasabb (ki lehet mérni, de nem hiszem, hogy ezen múlik), de
> olvashatóságra lehet, hogy sokat javítana ;)

Ez mondjuk jo gondolat, kolleganak meg fogom emliteni (mert jellemzoen o  
irja az sql-eket)

>
> Másik ötlet lehet, hogy ezeket az SQL machinálós dolgokat kiszervezni DB
> oldalra, és egy tárolt eljárás réteget építeni a Java és a DB közé,  
> ezekbe
> rakva az sql-eket. Tárolt eljárás van minden értelmes db-ben gondolom,
> legfeljebb némi simogatás szükséges az átálláshoz.
>
> Üdv: Gáspár Zoltán

Igen, ez is lehetne egy jo megoldas, ezt is meg fogom emliteni a  
kolleganak.

>
> 2009/3/24 Böszörményi Péter <zmblevlist at gmail.com>
>
>> Hat, ha ki tudnank szervezni az sql-eket kulon fileokba, maga lenne a
>> menyorszag. Jellemzoen ket tipusba sorolhato az sql:
>> - siman egy select/update/insert/delete, ami csak 1-2 parametert var,
>> ezzel nincs gond
>> - bonyolult logikaval osszerakott sql. Ezt nem tudom hogyan lehet jol
>> kiramolni. Csak a pelda kedveert kb igy nez ki a dolog:
>> http://rafb.net/p/REdUrH66.html Van ahol meg jobban van egymas
>> hegyen-hatan az ifek, meg cikulsok. Most igy vegig gondolva ez viszont
>> nem okozhat tul nagy gondot, mert egyszeru rovid stringek, konnyeden
>> formazhato.
>>
>> On 3/24/09, Molnár Miklós <timortinj at freemail.hu> wrote:
>> > Hali,
>> >
>> >>>>>>>>>>>>>
>> > Egyreszt ki nem allhatom, ha sql kolbasz van a kodban, masreszt, ha
>> > adatbazis valtas van, akkor szopo az egeszet atvesni (es lebeg a
>> levegoben a
>> > valtas), harmadresz hiszti van, ha beformazom a kodot, mert az sql
>> kolbaszt
>> > atformazza.
>> >>>>>>>>>>>>>
>> >
>> > És egy praktikus régi módszer?
>> >
>> > Kirámolni Javából filerendszerbe vagy bármilyen repositoryba a pure  
>> sql
>> > kolbászokat, onnan betölteni (dinamikusan vagy csak egyszer fordítás
>> elött),
>> > szükséges stringeket lecserélni. A DB-migrációt is jobban támogatja,
>> > formázásnál sem zavar be, külön is futtathatók az sql-ek.
>> >
>> > BTW: Az egy érdekes kérdés, hogy DB-migárció mikor könnyű. Ha nehéz az
>> azt
>> > is jelentheti egyrészt, hogy az elöző DB speciális fikcsijei ki lettek
>> > használva rendesen. Ami egyáltalán nem ördögtől való. ;) Persze  
>> másrészt
>> > jelentheti azt is, hogy óriási a kupleráj az SQL-nyelvjárások terén,  
>> ahol
>> az
>> > egyes esetekben kevés hozzáadott érték fedezhető fel.
>> >
>> > MM
>> >
>> > _______________________________________________
>> > Javalist mailing list
>> > Javalist at javagrund.hu
>> > http://javagrund.hu/mailman/listinfo/javalist
>> >
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>



-- 
Üdvözlettel,
Böszörményi Péter


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