Arbeide med ORM: JPA og Hibernate
Som du allerede vet, er Object-Relational Mapping (ORM) en teknologi som gjør det mulig for utviklere å samhandle med en database på objektnivå i stedet for gjennom SQL-spørringer.
I hovedsak er ORM et konsept som gjør det mulig å representere et Java-objekt som data i en database (og omvendt). Det er implementert i form av spesifikasjonen Java Persistence API (JPA).
JPA
Virkelighetseksempel
Tenk deg at JPA er som en standard for elektriske stikkontakter i ulike land. Denne standarden definerer hvordan en stikkontakt skal se ut og hvilke spesifikasjoner den må følge slik at enheter kan kobles til.
Men selve standarden produserer ikke stikkontaktene. For å faktisk bruke dem, trenger du produsenter som implementerer denne standarden. De lager de faktiske stikkontaktene som oppfyller kravene.
Hovedkomponenter i JPA
JPA-komponenter er sentrale elementer som arbeider sammen for å gi funksjonalitet for samhandling med en database.
Vi skal utforske disse komponentene gjennom virkelige eksempler for å hjelpe deg å assosiere dem for fremtidig bruk.
Entitet
La oss minne oss på hva en entitet er. En entitet er en klasse i koden din som representerer en tabell i databasen. For eksempel beskriver User-klassen hvilke brukerrelaterte data vi lagrer.
Tenk på det som et visittkort. Kortet inneholder en persons navn, stillingstittel og kontaktinformasjon. I JPA beskriver en entitetsklasse alle de viktige egenskapene til et objekt, akkurat som et visittkort beskriver en person.
EntityManager
I JPA utfører EntityManager operasjoner som legge til, oppdatere eller slette poster, og håndterer alle disse handlingene.
EntityManager har ansvaret for håndtering av livssyklusen til entiteter (objekter) og deres interaksjon med databasen.
Hovedmetoder
Slik bruker du EntityManager i Spring Boot
Persistens-kontekst
Livssyklus for entiteter
- Transient: Entiteten er nettopp opprettet, men er ikke ennå lagret i databasen;
- Managed: Entiteten er lagret i databasen og blir administrert av
EntityManager. Alle endringer spores automatisk; - Detached: Entiteten var tidligere administrert, men persistens-konteksten er lukket eller
EntityManagerer tømt. Endringer i denne tilstanden spores ikke automatisk; - Removed: Entiteten er markert for sletting fra databasen.
Når EntityManager oppretter eller finner en entitet, plasseres denne entiteten i persistenskonteksten.
Alle endringer gjort på den administrerte entiteten spores automatisk, og ved fullføring av transaksjonen blir disse endringene synkronisert med databasen.
JPQL (Java Persistence Query Language)
I JPQL skrives spørringer for å finne eller endre data i databasen ved bruk av en objektorientert stil.
SELECT c from Category c WHERE c.title = 'query'
I JPQL arbeider vi ikke direkte med tabell- og kolonnenavn. I stedet refererer vi til Category-klassen og dens title-felt, noe som gjør spørringen enklere å forstå for Java-utviklere. JPQL abstraherer bort den underliggende databasestrukturen, slik at du kan fokusere på det objektorienterte modell.
Hibernate
For eksempel kan Hibernate automatisk generere og oppdatere databasetabeller basert på dine entiteter (klasser).
Hibernate inkluderer cache-mekanismer som gjør at ofte brukte data kan lagres i minnet, noe som reduserer antall forespørsler til databasen og øker applikasjonens ytelse.
1. Hva er JPA?
2. Hvilket grensesnitt i JPA brukes for å utføre operasjoner på entiteter?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
What are the main differences between JPA and Hibernate?
Can you explain more about how the EntityManager works?
How does JPQL differ from regular SQL?
Awesome!
Completion rate improved to 3.45
Arbeide med ORM: JPA og Hibernate
Sveip for å vise menyen
Som du allerede vet, er Object-Relational Mapping (ORM) en teknologi som gjør det mulig for utviklere å samhandle med en database på objektnivå i stedet for gjennom SQL-spørringer.
I hovedsak er ORM et konsept som gjør det mulig å representere et Java-objekt som data i en database (og omvendt). Det er implementert i form av spesifikasjonen Java Persistence API (JPA).
JPA
Virkelighetseksempel
Tenk deg at JPA er som en standard for elektriske stikkontakter i ulike land. Denne standarden definerer hvordan en stikkontakt skal se ut og hvilke spesifikasjoner den må følge slik at enheter kan kobles til.
Men selve standarden produserer ikke stikkontaktene. For å faktisk bruke dem, trenger du produsenter som implementerer denne standarden. De lager de faktiske stikkontaktene som oppfyller kravene.
Hovedkomponenter i JPA
JPA-komponenter er sentrale elementer som arbeider sammen for å gi funksjonalitet for samhandling med en database.
Vi skal utforske disse komponentene gjennom virkelige eksempler for å hjelpe deg å assosiere dem for fremtidig bruk.
Entitet
La oss minne oss på hva en entitet er. En entitet er en klasse i koden din som representerer en tabell i databasen. For eksempel beskriver User-klassen hvilke brukerrelaterte data vi lagrer.
Tenk på det som et visittkort. Kortet inneholder en persons navn, stillingstittel og kontaktinformasjon. I JPA beskriver en entitetsklasse alle de viktige egenskapene til et objekt, akkurat som et visittkort beskriver en person.
EntityManager
I JPA utfører EntityManager operasjoner som legge til, oppdatere eller slette poster, og håndterer alle disse handlingene.
EntityManager har ansvaret for håndtering av livssyklusen til entiteter (objekter) og deres interaksjon med databasen.
Hovedmetoder
Slik bruker du EntityManager i Spring Boot
Persistens-kontekst
Livssyklus for entiteter
- Transient: Entiteten er nettopp opprettet, men er ikke ennå lagret i databasen;
- Managed: Entiteten er lagret i databasen og blir administrert av
EntityManager. Alle endringer spores automatisk; - Detached: Entiteten var tidligere administrert, men persistens-konteksten er lukket eller
EntityManagerer tømt. Endringer i denne tilstanden spores ikke automatisk; - Removed: Entiteten er markert for sletting fra databasen.
Når EntityManager oppretter eller finner en entitet, plasseres denne entiteten i persistenskonteksten.
Alle endringer gjort på den administrerte entiteten spores automatisk, og ved fullføring av transaksjonen blir disse endringene synkronisert med databasen.
JPQL (Java Persistence Query Language)
I JPQL skrives spørringer for å finne eller endre data i databasen ved bruk av en objektorientert stil.
SELECT c from Category c WHERE c.title = 'query'
I JPQL arbeider vi ikke direkte med tabell- og kolonnenavn. I stedet refererer vi til Category-klassen og dens title-felt, noe som gjør spørringen enklere å forstå for Java-utviklere. JPQL abstraherer bort den underliggende databasestrukturen, slik at du kan fokusere på det objektorienterte modell.
Hibernate
For eksempel kan Hibernate automatisk generere og oppdatere databasetabeller basert på dine entiteter (klasser).
Hibernate inkluderer cache-mekanismer som gjør at ofte brukte data kan lagres i minnet, noe som reduserer antall forespørsler til databasen og øker applikasjonens ytelse.
1. Hva er JPA?
2. Hvilket grensesnitt i JPA brukes for å utføre operasjoner på entiteter?
Takk for tilbakemeldingene dine!