Gå til innhold

Mitt første blikk på Hibernate


Anbefalte innlegg

Har testet Hibernate 3.0 sammen med postgresql for windows de to siste dagene og synes det virker som et utrolig behagelig opplegg.

 

Jobber til daglig med softwareutvikling hvor vi bruker java, jdbc og postgres... Er ganske sikker på at vi kommer til å bruke java, hibernate og postgres og litt sql framover...

 

ORM står for Object Relation Mapping, i dette tilfellet en kobling mellom java klasser og databasetabeller. Hibernate synes jeg virker spesiellt godt egnet, ettersom det er helt vanlig java klasser som man kobler til databasetabeller gjennom en xml fil, eller spesielle tags i kommentarene.

 

Fordelen er at mengden kode man må skrive for å få lagret dataene sine går drastisk ned. F.eks testet jeg med 5-6 tabeller som var knyttet mot hverandre. Med hibernate så var det latterlig enkelt å hente ut alle data om f.eks en ordre. Istedetfor å skrive 5-6 sql selects så kunne jeg bare skrive dette:

 

Integer primaryKey = new Integer(6);

Order order = (Order)session.load(Order.class, primaryKey);

 

for å hente ut f.eks statusene denne ordren hadde kunne jeg så skrive

 

Set orderstatuses = order.getOrderstatuses();

 

Det beste med det er egentlig at når jeg så skal sende disse dataene fram og tilbake mellom server og klient så kan jeg bruke de genererte klassene og forholde meg til dem, istedetfor å klamre meg til databasen...

 

Nyttige linker:

www.hibernate.org

www.postgres.org

Lenke til kommentar
Videoannonse
Annonse

Har nå testet litt mer, fikk importert en litt større database på et par gb litt over 200 tabeller og noen av tabellene har over 1 million rader...

 

Dvs, det jeg har fått testet er eclipse og hibernate sine plugins til eclipse.

 

På verktøy sida til hibernate så hadde jeg glatt hoppet over en linje der det stod:

"See the tools in action (requires Flash): Configuration Wizard and Mapping Editor"

Hvor det var linker til to flash filmer som viser hvordan man bruker verktøyene... Etter å ha fulgt instruksjonene så gikk alt på skinner.*

 

Det var bare synd at jeg under importeringen av databasen hadde mistet meningsfulle navn på foreign keys og nå satt igjen med hundrevis av foreign keys med navnene "$1", "$2", etc.

 

Hibernate sine verktøy for å generere java klasser og xml filer krever unike navn på foreign keys. Etter litt leting på forumet så viste det seg at det omtrent bare er postgres som tillater ikke-unike navn på foreign keys, og at dette ikke fungerer sammen med verktøyet.. Genialt. :no:

 

Fikk testet litt allikevel og genereringen av et par enkle tabeller gikk fint

 

http://www.eclipse.org/

http://tools.hibernate.org

 

*I innlegget over hadde jeg brukt myeclipse, men jeg tenkte at jeg heller kunne prøve plugin'ene som følger med hibernate, spesielt siden myeclipse koster penger.

 

Jeg klønet en hel del med å få lagt inn verktøyene, rett og slett fordi jeg aldri har lagt til plugins til eclipse og eclipse pluginene til hibernate kommer med jar filer i to kataloger. Etter litt prøving og feiling viste det seg at alle jar filene skal rett i plugin katalogen i eclipse, uten noen som helst form for kataloger... Jeg vet ikke om det er optimalt, men det fungerte ihvertfall.

Lenke til kommentar
  • 8 måneder senere...

Da var det gått endel måneder og verktøyene og databasen jeg bruker til daglig er oppdatert til postgres 8.1. Hadde visst et par svin på skogen når det kommer til foreign key constraints, så har måttet rydde litt opp i gamle data.

 

Bestemte meg for å prøve å bruke annotations istedetfor xml mapping filer og det har egentlig gått svært bra. Det er rett og slett bedre å ha alt i en fil istedetfor 2 gjensidig avhengige filer.

 

Har måttet jobbe litt for å få reverse engineeret dataene som jeg ville, men har nå fått autogenerert ca 600 klasser fra like mange tabeller. Skal bli godt å kunne skrive minimalt med sql...

 

Problemene jeg har hatt er bl.a. at vi ikke har hatt noen skikkelig standard på sequence'n vi bruker, men det skal være fikset nå.

 

Har etterhvert begynnt å kikke på EJB3 standarden og liker den bedre jo mer jeg leser om den... Lurer litt på å bruke JBoss sin applikasjonsserver, den ser bl.a. ut til å ha noen interessante måter å bruke RMI på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...