DAO a "stored procedures only" pristup
Dusan Zatkovsky
msk.conf na gmail.com
Pátek Červen 5 12:13:48 CEST 2009
Ahoj.
S javou mam cca rocne skusenosti, sam programujem projekt silne orientovany na
databazu ( postgres ).
Z predoslych zamestnani poznam nejedneho db admina, ktoremu vstavaju vlasy na
hlave, ked ma nieco docinenia s jeho databazou nejaky java projekt.
Sam mam sice len velmi chabe prakticke skusenosti s hibernate a spol z pohladu
programatora ( chvilu som sa s tym hral), ale aby som predisiel buducim
problemom, pouzivam v nasom projekte vyhradne jdbc.
Hibernate ma urcite obrovsku vyhodu, ze ulahcuje ukladanie objektov do db,
same sa stara o zatvaranie spojeni, zavaranie resultset-ov a kurzorov a
podobne. Na jednoduchy web alebo primitivnu aplikaciu je to super. Ale jeho
primarnou funkciou nie je robit interface medzi programom a databazou, ta
databaza je tam proste iba ako backend. Toto imho mnoho programatorov nechape
a potom to vyzera, ako to vyzera.
Stored procedury maju svoj zmysel, ale ich naduzivanie je mnohokrat na skodu.
Na druhej strane ich absolutne nepouzivanie a spoliehanie sa na nejake
blackboxy v jave je druhy extrem.
Co sa tyka procedur na primitivne insert,select a spol, nepoznam detaily danej
databazy, mozu tam byt kvoli nejakemu trigger-ingu, kontrolam, replikacii, to
je tazko takto sudit a nepoznat konkretnu situaciu.
> doteraz tiez taky pristup pouzivali. Na odpoved preco hovorili, ze
> kvoli moznosti nastavovania pristupov ...
S tymto sa neda nic ine len suhlasit. Akonahle odflaknete databazovy navrh a
pristupove prava na urovni databazy ( co pomocou klik klik hibernate urcite
odflaknete ), nezachrani vas uz ziadna dalsia vrstva medzi programom a
databazou.
Z vlastnej skusenosti - java program naklikany v hibernate, programatorovi to
na dedikovanej databaze na testy chodi ok. Projekt sa da na vytazenu
produkcnu db a je to cele v prdeli. Moznosti ladenia na urovni db su nulove,
medzi programom a databazou je blackbox ktory situaciu dokonale zamlzi.
Tot moj nazor.
--
Dusan
> Ahoj,
>
> mna k takemuto rieseniu nutil jeden klient (velka banka), pretoze
> doteraz tiez taky pristup pouzivali. Na odpoved preco hovorili, ze
> kvoli moznosti nastavovania pristupov, pouzivali MS SQL a tam s tym
> asi mali problem - k SP sa daju nastavovat presnejsie prava. Druhy
> dovod co uvadzali bolo to, ze k SP ma databaza pripravene exekucne
> plany a ze je to teda rychlejsie ako bezne SQL dotazy.
>
> Bolo pre nich dost nepochopitelne, ked sme im povedali, ze v nasej
> aplikacii nepouzivame ziadne SP (z dovodu prenositelnosti medzi
> databazami). Nakoniec sa ale uspokojili s tym, ze pre pripojenie na MS
> SQL pouzivame jTDS, ktory automaticky volania prepared statements
> konvertuje na stored procedures, ktore si dynamicky vytvara.
>
>
> On 5.6.2009, at 10:39, <Lukas.Kubasek na barclayscapital.com>
> <Lukas.Kubasek na barclayscapital.com
>
> > wrote:
> >
> > Zdravim,
> >
> > Rad bych se zeptal na nezavisly nazor. Je ve vasi firme bezne, ze
> > jsou v
> > Java Enterprise aplikaci (Spring, EJB, cokoliv) vsechny CRUD operace
> > modelovany pres ulozene procedury v databazi? Nemluvim o komplexnich
> > operacich, ktere je nutne do storky davat, ale o kazde jednotlive
> > jednoduche operaci select, update, insert, delete, pricemz z DAO
> > vrstvy
> > pak jen volate ulozenou proceduru?
> >
> > Mate nejake vyrazne plusy ci minusy proc tento pristup
> > doporucit/zavrhnout?
> >
> > Diky
> >
> > Lukas Kubasek
> > Barclays Capital, Global IT Services Prague
> > _______________________________________________
> >
> > This e-mail may contain information that is confidential, privileged
> > or otherwise protected from disclosure. If you are not an intended
> > recipient of this e-mail, do not duplicate or redistribute it by any
> > means. Please delete it and any attachments and notify the sender
> > that you have received it in error. Unless specifically indicated,
> > this e-mail is not an offer to buy or sell or a solicitation to buy
> > or sell any securities, investment products or other financial
> > product or service, an official confirmation of any transaction, or
> > an official statement of Barclays. Any views or opinions presented
> > are solely those of the author and do not necessarily represent
> > those of Barclays. This e-mail is subject to terms available at the
> > following link: www.barcap.com/emaildisclaimer. By messaging with
> > Barclays you consent to the foregoing. Barclays Capital is the
> > investment banking division of Barclays Bank PLC, a company
> > registered in England (number 1026167) with its registered office at
> > 1 Churchill Place, London, E14 5HP. This email may relate to or be
> > sent from other members of the Barclays Group.
> > _______________________________________________
>
> --
> jeeff
Další informace o konferenci Konference