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