Forskel mellem Ejb og Hibernate Forskel mellem
Ejb vs Hibernate
For at komme til EJB er det godt at forstå baggrunden for, hvor den kommer fra. Der findes to typer enhedsbønner. Disse er CMP og BMP. CMP refererer til Container Managed Persistence, mens BMP refererer til Bean Managed Persistence. EJB er specielt brugt til objektformulering og serialisering, når man beskæftiger sig med Relational Databases i SQL.
Når udviklingen af en kompleks applikation kommer til at spille, begynder den med modellering. Klasser og objekter foretrækkes at blive brugt over tabellerne, da de kommer med komplekse sammenhænge, der kan forårsage mange problemer, hvis det ikke er vel implementeret. Dette betyder i det væsentlige, at vi beskæftiger os med et system, der anvender design af tænkning i objekter og ikke i tabeller. Brugen af relationelle databaser er ret hurtig og testet i tide. Dette sammenlignet med objekt serialisering sparer tid, da kompleks objekt serialisering er en meget langsom proces. Brug af relationsdatabase teknologi er en hurtig og tid testet og populær blandt mange udviklere og dermed grunden til det foretrukne.
Det er muligt at udelukkende beskæftige sig med tabeller under udvikling og anvender bønner i datamanipulering og læsning af data. I så høj grad som det er muligt, er dets praktiske ikke muligt, især når man beskæftiger sig med virkelig komplekse projekter for at anvende ovenstående metode. Dette er grundlaget for anvendelsen af enhedsbønner i EJB.
CMP i EJB1 er designet til at være egnet til brug med enkle tabeller, der ikke kommer med et komplekst forhold til andre tabeller. Brug af CMP undgår referencer, der henviser til den underliggende database. Det betyder faktisk, at det er mere bærbart, og sælgerens lås ind forekommer ikke. EJB 1 vedvarer også data til objektdatabaser udover relationelle databaser.
EJB 2. 0 er kommet med et revolutionerende design, der har til formål at forbedre overordnet funktionalitet. Hovedændringen med det er det format, det foreslår at skrive CMP. Det giver relationer og foreslår også brug af et simpelt forespørgselssprog, der benævnes EBJ-QL. Dette sprog sigter mod at minimere netværkstrafik ved at kalde en enhed bønne en session bønne.
Dvale er på den anden side et ORM-værktøj, der ikke har en stejl indlærings kurve, der er fælles med EJB og ikke er så fejlagtigt som EJB. Hibernate er foretrukket på grund af sin fleksibilitet, hvilket tillader Servlets og JSP dets brug. Hibernate er bygget i overensstemmelse med J2EE-specifikationen, der gør den anvendelig i de fleste applikationer, som en udvikler vil have. Hibernate er et specielt ORM-værktøj, da det ikke kun kan bruges i EJB-beholdere, men også i selvstændige beholdere og webcontainere.Dette er den største forskel, der skiller sig ud mellem EJB og Hibernate. Udvikling med dvaletilstand er derfor meget nemmere og mindre kompliceret i modsætning til brugen af EJB.
Hibernate er tilsyneladende mere populær blandt brugere af J2EE-miljøet, og hvis EBJ fortsætter med udviklingen af komplekse funktioner, der tager et stykke tid for at få brugerne til at kende, vil Hibernate være den dominerende i feltet, og EJB kan finde sig selv låst ud af J2EE som i øjeblikket, er det ikke i kontakt med de fleste udviklere, som det søger at målrette mod på markedet.
Sammenfatning
EJB er en enhedsbønne, der er specielt brugt til objektformulering
Der er mulighed for at bruge tabeller og brug af sessionbønner i datalæsning og manipulation, selvom det ikke er praktisk
EBJ giver en relativt enkel forespørgselssprog for udvikling, der kaldes EJB-QL
EBJ fejlfejl
Hibernate er relativt let at forstå og implementere
Hibernate ikke som fejlagtigt som EJB