[Java lista] Sql builder

Zoltán Gáspár zoltan.gaspar at gmail.com
2009. Már. 24., K, 17:21:04 CET


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.

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 ;)

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

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
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20090324/06a2eb66/attachment.html 


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