Spring DATA Neo4j Example


I dette kapitlet vil vi diskutere hvordan å utvikle en Spring Framework prosjekt å jobbe med Neo4j Database.

Spring DATA Neo4j Mannskaps Stempler

Vi kommer å bruke følgende Spring Framework Stempler å utvikle dette programmet.
S.No.
Spring DATA Neo4j Stempler
Bruks
1. @ GraphEntityTo definere domene klasse en Neo4j Entity2. GraphIDTo definere Node eller Sivil id3. @ GraphPropertyTo definere node eller relasjonsegenskaper

Før utvikle programmet, kan du se "Neo4j Spring DATA Miljø Setup" kapittel til setup Maven Eclipse IDE-prosjektet.

Kort trinn å gjennomføre Spring DATA Neo4j Søknad -

Utvikle Graph Entity eller Domain eller POJO Klasser

Utvikle DAO eller Resurser

Utvikle Tjenesten Layer (om nødvendig)

Våren DATA Neo4j XML-konfigurasjoner

Vi har nå demonstrere hvordan man kan utvikle en Maven basert Spring DATA søknad i Eclipse IDE å utføre Neo4j DB Operations.

Utvikle Graph Entity eller Domain eller POJO Klasser

Vi bør gjennomføre equals () og hashCode () metoder.

Det er ikke nødvendig å gi Settere metode for "id" eiendom fordi Neo4j vil ta seg av å tildele denne eiendommen
pakken com.tp.springdata.neo4j.domain, import org.springframework.data.neo4j.annotation.GraphId; import org.springframework.data.neo4j .annotation.NodeEntity;NodeEntitypublic klasse GoogleProfile {GraphId Long id; private String navn; private String adresse; private String sex; private String dob; offentlig Long getId () {return id; } Public String getName () {return navn; } Public void setName (String navn) {this.name = navn; } Public String getAddress () {return adresse; } Public void setAddress (String adresse) {this.address = adresse; } Public String getSex () {return sex; } Public void setSex (String sex) {this.sex = sex; } Public String getDob () {return dob; } Public void setDob (String dob) {this.dob = dob; } Public boolean equals (Object andre) {if (denne == andre) return true; if (id == null) return false; if ((annet instanceof GoogleProfile)!) return false; returnere id.equals (((GoogleProfile) andre) .id); } Public int hashCode () {return id == null? System.identityHashCode (denne): id.hashCode (); } Public String toString () {return "Profil [id:" + id + ", navn:" + navn + ", sex:" + sex + ", adresse:" + adresse + ", dob:" + dob + "] "; }}

GraphProperty er valgfritt, slik at vi kan utelate dette. Fremfor Entity er samme som under
pakken com.tp.springdata.neo4j.domain;. Import org.springframework.data.neo4j.annotation.GraphId, import org.springframework.data.neo4j.annotation.NodeEntity;NodeEntitypublic klasse GoogleProfile {GraphId privat Long id; private String navn; private String adresse; private String sex; private String dob; //Getter for id //settere og Getters for resten av eiendommer //implementere equals () og hashCode () metoder}

Utvikle Spring DATA Neo4j Repository.

Som vi diskuterte tidligere, må vi utvikle bare grensesnittet ved å utvide Spring DATA Neo4j API-grensesnitt "GraphRepository" og ikke nødvendig gjennomføringen.

Spring DATA Neo4j vil ta seg av å gi implementeringen for dette grensesnittet internt.

Definer en Repository eller DAO grensesnitt for vår Domain Klasse: GoogleProfile
pakken com.tp.springdata.neo4j.dao, import org.springframework.data.neo4j.repository.GraphRepository; felles grensesnitt GoogleProfileRepository strekker GraphRepository < GoogleProfile > {}

Det er veldig lett og enkel å implementere Spring DAT Neo4j depotet. Vi trenger bare å definere et grensesnitt ved å utvide GraphRepository ved å angi vårt domene klassen som en parameter

Utvikle service laget Artifacts:. Grensesnitt og implementering.

Det er god praksis å gi en tjeneste laget i vår applikasjon på toppen av DAO lag

Tjenestearti

Service Component Interface:.

pakken com.tp.springdata.neo4j.service, import org.springframework.data.neo4j.conversion.Result, import com.tp.springdata.neo4j.domain.GoogleProfile; felles grensesnitt GoogleProfileService {GoogleProfile lage (GoogleProfile profil ); void slette (GoogleProfile profil); GoogleProfile findById (lang id); Resultatet < GoogleProfile > findAll ();}

Service Component Gjennomføring:
pakke com.tp.springdata.neo4j.service, import org.springframework.beans.factory.annotation.Autowired; import org.springframework. data.neo4j.conversion.Result, import org.springframework.stereotype.Service, import com.tp.springdata.neo4j.dao.GoogleProfileRepository, import com.tp.springdata.neo4j.domain.GoogleProfile;Service ("googleProfileService") public class GoogleProfileServiceImpl implementerer GoogleProfileService {Autowired privat GoogleProfileRepository googleProfileRepository; offentlig GoogleProfile opprette (GoogleProfile profil) {return googleProfileRepository.save (profil); } Public void slette (GoogleProfile profil) {googleProfileRepository.delete (profil); } Public GoogleProfile findById (lang id) {return googleProfileRepository.findOne (id); } Public Resultat < GoogleProfile > findAll () {return googleProfileRepository.findAll (); }}
Spring DATA Neo4j XML-konfigurasjoner

Å kjøre Spring-baserte applikasjoner, trenger vi å gi noen XML konfigurasjoner.

Vi trenger å oppgi følgende informasjon i Spring XML konfigurasjonsfilen

Gi Spring data Neo4j navne
xmlns: neo4j = http: //www.springframework.org/schema/data/neo4j

Gi Spring data Neo4j Schema Definition ( XSD-fil)
xsi: schemaLocation = "http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j.xsd "

fjær neo4j.xsd filen inneholder alle Spring data Neo4j relatert XML-koder

gi våre Neo4j Database plassering og våre Graf Entities (Domain eller POJO klasser) grunnpakken
< neo4j: config storeDirectory = "C: \\ TPNeo4jDB"? grunnpakke = "com.tp.springdata.neo4j.domain" />

Her storeDirectory = "C: \\ TPNeo4jDB" definerer våre Neo4j Database-filer er lagret på C:. \\ TPNeo4jDB plassering i vår filsystemet

grunnpakke = "com.tp.springdata.neo4j.domain"

Alle våre Graf Entities har com.tp.springdata. neo4j.domain som grunnpakken i vår søknad CLASSPATH

Gi vår Spring data Neo4j Resurser (DAO Interface) grunnpakken
< neo4j. repositories grunnpakke = "com. tp.springdata.neo4j.dao "/>?

Alle våre Spring data Neo4j Resurser er tilgjengelig på com.tp.springdata.neo4j.dao pakke i vår søknad CLASSPATH

Gi Spring konfigurasjon å registrere Annotated komponenter med Spring IOC Container
< kontekst:.? komponent-scan grunnpakke = "com.tp.springdata.neo4j.service" />

Alle våre komponenter eller tjenester er tilgjengelig på "com.tp.springdata.neo4j.service" pakken i vår søknad CLASSPATH

Complete "googleprofile.xml"
<? xml version = "1.0" encoding = "UTF-8" frittstående ? = "no" > < bønner xmlns = "http://www.springframework.org/schema/beans~~number=plural" xmlns: kontekst = "http://www.springframework.org/schema/context~~number=plural" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: neo4j = "http://www.springframework.org/schema/data/neo4j~~number=plural" xmlns: tx = "http: //www.springframework .org /schema /tx "xsi: schemaLocation =" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http: //www. springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/neo4j http://www.springframework.org /schema/data/neo4j/spring-neo4j.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> < kontekst: komponent-scan grunnpakke = "com.tp.springdata.neo4j.service" /> < neo4j: config storeDirectory = "C: \\ TPNeo4jDB" base-pakke = "com.tp.springdata.neo4j.domain" /> < neo4j: repositories grunnpakke = "com.tp.springdata.neo4j.dao" /> < tx: merknad drevet /> < /bønner >

Utvikle Test programmet og teste alle operasjoner
import java.util.Iterator, import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext, import org.springframework.data.neo4j.conversion.Result, import com.tp.springdata.neo4j.service.GoogleProfileService, import com.tp.springdata.neo4j.domain.GoogleProfile; public class GoogleProfileTest {public static void main (String [] args) {ApplicationContext sammenheng = new ClassPathXmlApplicationContext ("googleprofile.xml"); GoogleProfileService service = (GoogleProfileService) context.getBean ("googleProfileService"); //Vennligst uncomment en av driften delen //og kommentar resterende delen for å teste bare en operasjon om gangen //Her har jeg uncommented CREATE drift og //kommen andre operasjoner: FINN EN, Finn alle, SLETT //CREATE Operation GoogleProfile profil = createPofile (); createProfile (service, profil); System.out.println ("GoogleProfile opprettet."); //FINN ONE /* GoogleProfile profil = getOneProfileById (service, 67515L); System.out.println (profil); * ///FINN ALL /* getAllProfiles (tjenesten); * ///SLETT /* GoogleProfile profil = createPofile (); deleteProfile (service, profil); System.out.println ("GoogleProfile slettet."); * /} Private static GoogleProfile createProfile (GoogleProfileService service, GoogleProfile profil) {return service.create (profil); } Private static void deleteProfile (GoogleProfileService service, GoogleProfile profil) {service.delete (profil); } Private static GoogleProfile getOneProfileById (GoogleProfileService service, Long id) {return service.findById (id); } Private static void getAllProfiles (GoogleProfileService tjeneste) {Resultat < GoogleProfile > Resultatet = service.findAll (); Iterator < GoogleProfile > iterator = result.iterator (); while (iterator.hasNext ()) {System.out.println (iterator.next ()); }} Private static GoogleProfile createPofile () {GoogleProfile profil = new GoogleProfile (); profile.setName ("Profil-2"); profile.setAddress ("Hyderabad"); profile.setSex ("Mann"); profile.setDob ("02/02/1980"); avkastningsprofil; }}

Jeg har uncommented bare for CREATE drift og kommen resten av 3 operasjoner.

Hvis du vil teste andre operasjoner, jut kommentar uønsket delen og uncomment ønsket seksjon og teste dette programmet

Final Eclipse Maven prosjekt struktur

NB: -

Når vi kjører dette programmet, må du sørge for at vår Neo4j Database server bør være i SHUTDOWM staten.

Før du utfører denne Java Program, sjekk din Neo4j er i avslutningsmodus eller ikke. Hvis ikke, klikker du på "Stop" knappen til showdown det.

Kjør GoogleProfileTest.java søknad og se resultatene

Når vi kjører dette CREATE operasjon i Eclipse IDE, kan vi observere følgende meldinger i konsollen

Etter utførelse av visse operasjoner, så starte Neo4j Database server ved å klikke på "Start" -knappen

Åpne Neo4j dataleseren ved hjelp av http.: //localhost: 7474 /url

Skriv under kommando på dataleseren

Klikk på "Execute" -knappen og observere resultatene

Så langt har vi opprettet 3 GoogleProfile noder.




Next Page:No