Java >> Java tutorial >  >> Tag >> Spring

Spring Data – Del 1:Commons

Et mål med Spring Data-projektet er at levere en fælles API til at få adgang til både NoSQL-datalagre og relationelle databaser. Spring Data fungerer som et paraplyprojekt, der tilbyder generelle løsninger – som paginering i store resultatsæt – og består af flere delprojekter til forskellige former for persistensrammer.

Inden for denne blogindlægsserie vil jeg gerne introducere visse aspekter af nogle af disse Spring Data-projekter. Jeg starter med

Spring Data Commons

Spring Data Commons-projektet giver grundlæggende implementeringer og grænseflader til de andre Data-projekter. Uanset hvilken slags datalager du bruger, vil du typisk være nødt til det

  • udfør CRUD-operationer (opret, læs, opdater, slet)
  • sortér dine data
  • sideinddel dine data

Alle disse aspekter er dækket med Spring Data Commons gennem en fælles API.

Lad os tage et kig på den vigtigste pakke org.springframework.data.repository :

Interfacet Repository er blot en tom markørgrænseflade. CrudRepository er meget mere interessant:det definerer vores almindelige CRUD-operationer sammen med andre nyttige metoder. PagingAndSortingRepository giver almindelige findermetoder med understøttelse af sortering og personsøgning. Alle disse grænseflader understøtter en type sikker brug af den vedvarende enhed og den primære nøgle.

I vores eksempler, User vil være det vedvarende domæneobjekt, som har en primær nøgle af typen String .

Sortering

Vores brugerlager er defineret sådan her …

public interface UserRepository extends PagingAndSortingRepository<User, String> {
}

offentlig grænseflade UserRepository udvider PagingAndSortingRepository {}

… og kan bruges til at finde alle poster og sortere resultaterne efter id og fullName ved hjælp af forskellige sorteringsretninger:

@Autowired UserRepository userRepo;
...
public Iterable<User> getSortedUsers() {
	return userRepo.findAll( new Sort(
		 new Sort.Order(Sort.Direction.ASC, "id"),
		 new Sort.Order(Sort.Direction.DESC, "fullName")
		 )
	);
}

@Autowired UserRepository userRepo;...public Iterable getSortedUsers() { return userRepo.findAll( new Sort( new Sort.Order(Sort.Direction.ASC, "id"), new Sort.Order(Sort.Direction. DESC, "fuldt navn") ) );}

Søgeside

Personsøgning er meget let:

Page<User> page = userRepo.findAll( new PageRequest(2, 20) );
List<User> users = page.getContent();	 
...

Side page =userRepo.findAll( new PageRequest(2, 20) );List brugere =page.getContent(); ...

Her bruger vi en sidestørrelse på 20 og anmoder om den anden side. En Page objects giver dig dataene for den anmodede side samt yderligere oplysninger såsom samlet antal resultater, sideindeks og noget mere.

Hvad er det næste?

Kommende blogindlæg vil dække Spring Data-projekter som Spring Data JPA og Spring Data MongoDB. Vi vil se på de grundlæggende konfigurationer af projekterne, deres specifikke API'er og give meget mere eksempelkode.

Vedholde, skal du, Mester Yoda siger.


Java tag