Spring Data - CrudRepository save () Metode

1. Oversigt

CrudRepository er en Spring Data-interface til generiske CRUD-operationer på et arkiv af en bestemt type. Det giver flere metoder ud af kassen til interaktion med en database.

I denne vejledning forklarer vi, hvordan og hvornår du skal bruge CrudRepositoryGemme() metode.

For at lære mere om Spring Data-arkiver, se vores artikel, der sammenligner CrudRepository til andre lagergrænseflader i rammen.

2. Afhængigheder

Vi bliver nødt til at tilføje Spring Data- og H2-databaseafhængigheder til vores pom.xml fil:

 org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime 

3. Eksempel på anvendelse

Lad os først oprette vores Spring Data-enhed kaldet MerchandiseEnhed. Denne klasse vil definer de datatyper, der bliver vedvarende til databasen, når vi kalder Gemme() metode:

@Entity offentlig klasse MerchandiseEntity {@Id @GeneratedValue (strategi = GenerationType.AUTO) privat Lang id; privat dobbelt pris; private String mærke; public MerchandiseEntity () {} public MerchandiseEntity (String brand, double price) {this.brand = brand; denne pris = pris; }}

Lad os derefter oprette en CrudRepository interface til at arbejde med MerchandiseEntity:

@Repository offentlig grænseflade InventoryRepository udvider CrudRepository {}

Her specificerer vi enhedens klasse og enhedens id's klasse, MerchandiseEntity og Lang. Når en forekomst af dette arkiv instantieres, vil den underliggende logik automatisk være på plads til at arbejde med vores MerchandiseEntity klasse.

Så med meget lidt kode er vi allerede klar til at begynde at bruge Gemme() metode.

4. CrudRepository gem () for at tilføje en ny forekomst

Lad os oprette en ny forekomst af MerchandiseEntity og gem det i databasen ved hjælp af InventoryRepository:

InventoryRepository repo = kontekst .getBean (InventoryRepository.class); MerchandiseEntity bukser = nye MerchandiseEntity ("Pair of Pants", BigDecimal.ONE); bukser = repo.save (bukser);

Når du kører dette, oprettes en ny post i databasetabellen for MerchandiseEntity. Bemærk, at vi aldrig har angivet en id. Forekomsten oprettes oprindeligt med en nul værdi for dens id og når vi kalder Gemme() metode, en id genereres automatisk.

Det Gemme() metode returnerer den gemte enhed, inklusive den opdaterede id Mark.

5. CrudRepository gem () for at opdatere en forekomst

Vi kan bruge den samme save () -metode for at opdatere en eksisterende post i vores database. Antag, at vi havde reddet en MerchandiseEnhed instans med en bestemt titel:

MerchandiseEntity bukser = nye MerchandiseEntity ("Pair of Pants", 34.99); bukser = repo.save (bukser); 

Men senere fandt vi ud af, at vi ønskede at opdatere varens pris. Vi kunne så simpelthen hente enheden fra databasen, foretage ændringen og bruge Gemme() metode som før.

Forudsat at vi kender id af varen (bukser), kan vi bruge CRUD Depot metode findById for at få vores enhed fra databasen:

MerchandiseEntity pantsInDB = repo.findById (pantsId) .get (); pantsInDB.setPrice (44.99); repo.save (pantsInDB); 

Her har vi opdateret vores oprindelige enhed med en ny pris og gemt ændringerne tilbage i databasen.

6. Konklusion

I denne hurtige artikel har vi dækket brugen af CrudRepository'S save () metode. Denne metode kan bruges til at tilføje en ny post i din database samt opdatere en eksisterende.

Som sædvanlig er koden til artiklen forbi på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found