మీరు కొంతకాలంగా రిలేషనల్ డేటాబేస్ మేనేజ్మెంట్ సిస్టమ్ యొక్క ఏదైనా రూపంలో ఉంటే, మీరు బహుశా పేరును చూడవచ్చు . మొట్టమొదటిసారిగా 2009 సంవత్సరంలో ప్రవేశపెట్టబడింది, నేడు మొంగోడిబి పరిశ్రమలో అత్యంత ప్రాచుర్యం పొందిన రిలేషనల్ డేటాబేస్ నిర్వహణ వ్యవస్థలలో ఒకటి. మార్కెట్లో ఉన్న మైస్క్ల్ వంటి పాత రిలేషనల్ డేటాబేస్ సాఫ్ట్వేర్ నిర్వాహకులు ఉన్నప్పటికీ దాని పిచ్చి ప్రజాదరణ వెనుక ప్రధాన కారణం, ఇది పట్టికకు తీసుకువచ్చే విస్తృత సంఖ్యలు మరియు గొప్ప పాండిత్యము. మొంగోడిబి వాడకం చాలా అవసరాలను తొలగిస్తుంది, వాటిలో ఒకటి డేటాబేస్ను సృష్టించడం మరియు క్రొత్త ప్రాజెక్ట్ ప్రారంభించిన ప్రతిసారీ డేటా రకాన్ని నిర్వచించడం. మొంగోడిబి క్లయింట్ వ్యాసం యొక్క అజెండా:
- మొంగోడిబి క్లయింట్ కోసం అవసరాలు
- మావెన్లో ప్రాజెక్ట్ను సృష్టిస్తోంది
- మీ మొట్టమొదటి JSON విశ్రాంతి సేవను కలుపుతోంది
- మొంగోడిబి డేటాబేస్ను కాన్ఫిగర్ చేస్తోంది
- కాన్ఫిగర్ చేయబడిన మొంగోడిబి డేటాబేస్ను అమలు చేస్తోంది
- ఫ్రంట్ ఎండ్ చేయడం
- BSON కోడెక్ ఉపయోగించి మొంగోడిబి క్లయింట్ను సులభతరం చేస్తుంది
- తుది కోడ్
కానీ మొంగోడిబి నుండి గరిష్ట కార్యాచరణను సాధించడానికి, మొంగోడిబి క్లయింట్తో పరిచయం ఉండాలి మరియు ఈ వ్యాసంలో, మేము దాని గురించి చర్చిస్తాము.
మొంగోడిబి క్లయింట్ కోసం అవసరాలు
ఈ వ్యాసం పూర్తిగా కోసం, మీరు మొదట ఈ క్రింది అవసరాలను తీర్చాలి.
మీ సిస్టమ్లో ఇప్పటికే ఒక IDE ఉంది.
జావా డెవలప్మెంట్ కిట్ లేదా JDK వెర్షన్ 1.8 మరియు అంతకంటే ఎక్కువ JAVA_HOME తో ఇన్స్టాల్ చేయబడింది.
డాకర్ లేదా మొంగోడిబి వ్యవస్థాపించబడింది.
అపాచీ మావెన్ వెర్షన్ 3.5.3 మరియు అంతకంటే ఎక్కువ.
ఈ గైడ్లో మనం సృష్టించిన మరియు ఉపయోగించిన వాస్తుశిల్పం సరళమైనది. అమలు చేసినప్పుడు వినియోగదారు సులభంగా జాబితాలో డేటా మరియు మూలకాలను జోడించవచ్చు, ఆ తర్వాత అది స్వయంచాలకంగా డేటాబేస్లో నవీకరించబడుతుంది.
దీనితో పాటు, డేటా మరియు సర్వర్ మధ్య కమ్యూనికేషన్ అంతా JSON లో ఉందని మరియు మొత్తం డేటా మొంగోడిబిలో నిల్వ చేయబడిందని మేము నిర్ధారించాము.
ఈ ప్రాజెక్ట్తో ప్రారంభించడానికి, క్రింద చెప్పిన దశలను అనుసరించండి.
ఓవర్లోడింగ్ vs ఓవర్రైడింగ్ సి ++
దశ # 1: మావెన్లో ప్రాజెక్ట్ను సృష్టించడం
మొదటి దశ ఎల్లప్పుడూ క్రొత్త ప్రాజెక్ట్ను సృష్టించడం మరియు దీన్ని చేయడానికి, కింది కోడ్ను ఉపయోగించుకోండి.
mvn io.quarkus: quarkus-maven-plugin: 0.22.0: create -DprojectGroupId = org.acme -DprojectArtifactId = using-mongodb-client -DclassName = 'org.acme.rest.json.FruitResource' -Dpath = '/ పండ్లు '-Dextensions =' resteasy-jsonb, mongodb-client '
మీరు పై ఆదేశాన్ని అమలు చేసినప్పుడు, IDE మీ సిస్టమ్లోకి JSON-B, మొంగోడిబి అలాగే RESTEasy / JAX-RS క్లయింట్లను దిగుమతి చేస్తుంది.
దశ 2 తో కదులుతోంది.
దశ # 2: మీ మొట్టమొదటి JSON విశ్రాంతి సేవను కలుపుతోంది
దీన్ని చేయడానికి, క్రింది కోడ్ను ఉపయోగించండి. ప్యాకేజీ org.acme.rest.json దిగుమతి java.util. పబ్లిక్ క్లాస్ ఫ్రూట్ {ప్రైవేట్ స్ట్రింగ్ పేరు ప్రైవేట్ స్ట్రింగ్ వివరణ పబ్లిక్ ఫ్రూట్ ()}} పబ్లిక్ ఫ్రూట్ (స్ట్రింగ్ పేరు, స్ట్రింగ్ వివరణ) {this.name = name this.description = description } పబ్లిక్ స్ట్రింగ్ getName () {తిరిగి పేరు} పబ్లిక్ శూన్య సెట్నేమ్ (స్ట్రింగ్ పేరు) {this.name = name} పబ్లిక్ స్ట్రింగ్ getDescription () {తిరిగి వివరణ} పబ్లిక్ శూన్య సెట్డిస్క్రిప్షన్ (స్ట్రింగ్ వివరణ) {this.description = description public public పబ్లిక్ ఓవర్రైడ్ బూలియన్ సమానం (ఆబ్జెక్ట్ ఆబ్జెక్ట్) {if (! (ఆబ్జెక్ట్ ఉదాహరణ ఫ్రూట్)) {తప్పుడు తిరిగి ఇవ్వండి} ఫ్రూట్ అదర్ = (ఫ్రూట్) ఆబ్జెక్ట్ రిటర్న్ ఆబ్జెక్ట్స్.అక్వల్స్ (ఇతర.పేరు, ఈ పేరు) Objects.hash (this.name)}}
పై ఉదాహరణతో, మేము మొదట ఫ్రూట్ను సృష్టించాము, అది తరువాత ప్రోగ్రామ్లో ఉపయోగించబడుతుంది.
తరువాత మనం org.acme.rest.json.FruitService ఫైల్ను సృష్టించాలి, అది మా అప్లికేషన్ యొక్క యూజర్ లేయర్ అవుతుంది. దీన్ని చేయడానికి, క్రింది కోడ్ను ఉపయోగించండి.
ప్యాకేజీ org.acme.rest.json దిగుమతి com.mongodb.client.MongoClient దిగుమతి com.mongodb.client.MongoCollection దిగుమతి com.mongodb.client.MongoCursor దిగుమతి org.bson.Document import javax.enterprise.context.Application.coject దిగుమతి javax దిగుమతి java.util.ArrayList దిగుమతి java.util.List appApplicationScoped పబ్లిక్ క్లాస్ ఫ్రూట్సర్వీస్ Mong Mong మొంగో క్లయింట్ మొంగో క్లయింట్ పబ్లిక్ జాబితా జాబితా () {జాబితా జాబితా = క్రొత్త శ్రేణి జాబితా () మొంగో కర్సర్ కర్సర్ = getCollection () కనుగొనండి (). ) ప్రయత్నించండి {అయితే (cursor.hasNext ()) document డాక్యుమెంట్ డాక్యుమెంట్ = cursor.next () ఫ్రూట్ ఫ్రూట్ = కొత్త ఫ్రూట్ () fruit.setName (document.getString ('name')) fruit.setDescription (document.getString ('description ')) జాబితా .అప్పెండ్ ('వివరణ', fruit.getDescription ()) getCollection (). insertOne (పత్రం)} ప్రైవేట్ మొంగో కలెక్షన్ getCollection () {తిరిగి mongoClient.getDatabase ('fruit'). getCol lection ('fruit')}} ఇప్పుడు మన అవసరాలకు అనుగుణంగా org.acme.rest.json.FruitResource క్లాస్ని సవరించాలి. దీన్ని చేయడానికి, క్రింది కోడ్ను ఉపయోగించండి. Ath పాత్ ('/ ఫ్రూట్స్') oses ఉత్పత్తి చేస్తుంది (మీడియాటైప్. APPLICATION_JSON) onsConsumes (MediaType.APPLICATION_JSON) పబ్లిక్ క్లాస్ ఫ్రూట్ రిసోర్స్ Fruit Fruit ఫ్రూట్ సర్వీస్ ఫ్రూట్ సర్వీస్ @ పబ్లిక్ జాబితా జాబితాను పొందండి () {రిటర్న్ ఫ్రూట్ సర్వీస్.లిస్ట్ () public పోస్ట్ జాబితా (పండ్ల పండు) {fruitService.add (పండు) తిరిగి జాబితా ()}}
దశ # 3: మొంగోడిబి డేటాబేస్ను కాన్ఫిగర్ చేస్తోంది
మొంగోడిబి డేటాబేస్ను కాన్ఫిగర్ చేయడానికి సింటాక్స్ మరియు ప్రామాణిక కోడ్ క్రింద ఇవ్వబడ్డాయి.
# రెండు నోడ్ల ప్రతిరూప సమితి కోసం మొంగోడిబి క్లయింట్ను కాన్ఫిగర్ చేయండి quarkus.mongodb.connection-string = mongodb: // mongo1: 27017, mongo2: 27017
మా విషయంలో, డేటాబేస్ను కాన్ఫిగర్ చేయడానికి మేము ఈ క్రింది కోడ్ను ఉపయోగిస్తాము.
# రెండు నోడ్ల ప్రతిరూప సమితి కోసం మొంగోడిబి క్లయింట్ను కాన్ఫిగర్ చేయండి quarkus.mongodb.connection-string = mongodb: // localhost: 27017
దశ 4 తో కదులుతోంది.
దశ # 4: కాన్ఫిగర్ చేయబడిన మొంగోడిబి డేటాబేస్ను అమలు చేస్తోంది
తదుపరి దశ మేము ఇప్పుడే సృష్టించిన మొంగోడిబి డేటాబేస్ను అమలు చేయడం. దీన్ని చేయడానికి, దిగువ కోడ్ను ఉపయోగించుకోండి.
docker run -ti --rm -p 27017: 27017 మొంగో: 4.0
దశ # 5: ఫ్రంట్ ఎండ్ చేయడం
ఇప్పుడు అప్లికేషన్ యొక్క బ్యాకెండ్ వద్ద అన్ని పనులు పూర్తయ్యాయి, మన అప్లికేషన్ యొక్క ఫ్రంట్ ఎండ్ను కోడ్ చేయడానికి ఉపయోగించే కోడ్ను పరిశీలిద్దాం.
ప్యాకేజీ org.acme.rest.json దిగుమతి io.quarkus.mongodb.ReactiveMongoClient దిగుమతి io.quarkus.mongodb.ReactiveMongoCollection దిగుమతి org.bson.Document import javax.enterprise.context.ApplicationScoped import javax.inject.Inject దిగుమతి java. దిగుమతి java.util.concurrent.CompletionStage appApplicationScoped public class ReactiveFruitService Re Re Re ReactMongoClient mongoClient public CompletionStage list () {return getCollection (). కనుగొను (). మ్యాప్ (doc -> {Fruit fruit = new Fruit () fruit.Net fruit doc.getString ('name')) fruit.setDescription (doc.getString ('description')) తిరిగి పండు}). జాబితా (). రన్ ()} పబ్లిక్ కంప్లీషన్స్టేజ్ యాడ్ (ఫ్రూట్ ఫ్రూట్) {డాక్యుమెంట్ డాక్యుమెంట్ = కొత్త డాక్యుమెంట్ () .append ('name', fruit.getName ()) .అప్పెండ్ ('వివరణ', fruit.getDescription ()) రిటర్న్ getCollection (). insertOne (document)} private ReactiveMongoCollection getCollection () {return mongoClient.getDatabase ('fruit' ) .getCollection ('fruit')}} ప్యాకేజీ org.acme.rest.json దిగుమతి javax.inject.Inject దిగుమతి javax.ws.rs. * i mport javax.ws.rs.core.MediaType దిగుమతి java.util.List దిగుమతి java.util.concurrent.CompletionStage athPath ('/ రియాక్టివ్_ఫ్రూట్స్') duces ఉత్పత్తి చేస్తుంది (MediaType.APPLICATION_JSON) onConsumes (MediaType.APPLICATIONS @Inject ReactiveFruitService fruitService @GET ప్రజా CompletionStage జాబితా () {తిరిగి fruitService.list ()} @POST ప్రజా CompletionStage యాడ్ (ఫ్రూట్ పండు) {fruitService.add (పండు) తిరిగి జాబితా ()}}
పై ఉదాహరణలో, మేము ఉపయోగించుకుంటున్నాము ఫ్రంట్ ఎండ్ ఏర్పడటానికి ఒక రియాక్టివ్ మొంగోడిబి క్లయింట్.
దశ 6 తో కదులుతోంది.
దశ # 6: BSON కోడెక్ ఉపయోగించి మొంగోడిబి క్లయింట్ను సరళీకృతం చేయడం
దీన్ని చేయడానికి, దిగువ కోడ్ను ఉపయోగించుకోండి.
ప్యాకేజీ org.acme.rest.json.codec దిగుమతి com.mongodb.MongoClient దిగుమతి org.acme.rest.json. పండ్ల దిగుమతి org.bson. * దిగుమతి org.bson.codecs.Codec దిగుమతి org.bson.codecs.CollectibleCodec దిగుమతి org .bson.codecs.DecoderContext దిగుమతి org.bson.codecs.EncoderContext దిగుమతి java.util.UUID పబ్లిక్ క్లాస్ ఫ్రూట్కోడెక్ కలెక్టబుల్ కోడెక్ {ప్రైవేట్ ఫైనల్ కోడెక్ డాక్యుమెంట్ కోడెక్ పబ్లిక్ ఫ్రూట్కోడెక్ () ) Public ఓవర్రైడ్ పబ్లిక్ శూన్య ఎన్కోడ్ (BsonWriter writer, Fruit fruit, EncoderContext encoderContext) {Document doc = new Document () doc.put ('name', fruit.getName ()) doc.put ('description', fruit.getDescription ()) documentCodec.encode (రచయిత, పత్రం, ఎన్కోడర్కాంటెక్స్ట్) public public పబ్లిక్ క్లాస్ను ఓవర్రైడ్ చేయండి getEncoderClass () {రిటర్న్ ఫ్రూట్క్లాస్ public public పబ్లిక్ ఫ్రూట్ జనరేటివ్ఇడ్ఇఫ్అబ్సెంట్ఫ్రోమ్డాక్యుమెంట్ (ఫ్రూట్ డాక్యుమెంట్) {if (! documentHasId (document)) UUID.randomUUID (). ToString ())} రిటర్న్ డాక్యుమెంట్ public public పబ్లిక్ బూలియన్ డాక్యుమెంట్ ఓవర్రైడ్ హాసిడ్ ( ఫ్రూట్ డాక్యుమెంట్) {రిటర్న్ డాక్యుమెంట్.జెట్ఇడ్ ()! = శూన్య public public పబ్లిక్ BsonValue getDocumentId (ఫ్రూట్ డాక్యుమెంట్) ఓవర్రైడ్ చేయండి కొత్త BsonString (document.getId ()) = documentCodec.decode (రీడర్, డీకోడర్కాంటెక్స్ట్) ఫ్రూట్ ఫ్రూట్ = కొత్త ఫ్రూట్ () if (document.getString ('id')! = null) {fruit.setId (document.getString ('id'))} fruit.setName (పత్రం .getString ('name')) fruit.setDescription (document.getString ('description')) తిరిగి పండు}}
ఇప్పటికే ఉన్న ఫ్రూట్ క్లాస్తో దీన్ని లింక్ చేయడానికి కోడెక్ప్రొవైడర్ను ఇప్పుడు ఉపయోగిస్తాము.
ప్యాకేజీ org.acme.rest.json.codec దిగుమతి org.acme.rest.json.Fruit import org.bson.codecs.Codec దిగుమతి org.bson.codecs.configuration.CodecProvider దిగుమతి org.bson.codecs.configuration.CodecRegistry పబ్లిక్ క్లాస్ ఫ్రూట్కోడెక్ప్రొవైడర్ కోడెక్ప్రొవైడర్ను అమలు చేస్తుంది public public పబ్లిక్ కోడెక్ను పొందండి (క్లాస్ క్లాజ్, కోడెక్ రిజిస్ట్రీ రిజిస్ట్రీ) {if (క్లాజ్ == ఫ్రూట్క్లాస్) {రిటర్న్ (కోడెక్) కొత్త ఫ్రూట్కోడెక్ ()} రిటర్న్ శూన్య}}
దశ # 7: తుది కోడ్
ఈ అనువర్తనం యొక్క చివరి కోడ్, ఇలా కనిపిస్తుంది.
ప్యాకేజీ org.acme.rest.json దిగుమతి com.mongodb.client.MongoClient దిగుమతి com.mongodb.client.MongoCollection దిగుమతి com.mongodb.client.MongoCursor దిగుమతి javax.enterprise.context.ApplicationScoped దిగుమతి javax.inject.Inject దిగుమతి java .అర్రేలిస్ట్ దిగుమతి java.util.List appApplicationScoped పబ్లిక్ క్లాస్ కోడెక్ఫ్రూట్ సర్వీస్ Mong Mong మొంగో క్లయింట్ మొంగో క్లయింట్ పబ్లిక్ లిస్ట్ లిస్ట్ () {జాబితా జాబితా = కొత్త అర్రేలిస్ట్ () మొంగో కర్సర్ కర్సర్ = getCollection (). కనుగొనండి (). .hasNext ()) {list.add (cursor.next ())}} చివరకు {cursor.close ()} రిటర్న్ జాబితా} పబ్లిక్ శూన్య యాడ్ (ఫ్రూట్ ఫ్రూట్) {getCollection (). insertOne (పండు)} ప్రైవేట్ మొంగో కలెక్షన్ getCollection ( ) {తిరిగి mongoClient.getDatabase ('fruit'). getCollection ('fruit', Fruit.class)}}
ముగింపు
మీ సిస్టమ్లో మొంగోడిబి క్లయింట్ను ఎలా కాన్ఫిగర్ చేయాలో మరియు ఉపయోగించాలో ఇప్పుడు మీకు తెలుసు. మీ సిస్టమ్లో ఈ కోడ్లను ప్రయత్నించండి మరియు మీ అనుభవాన్ని మాకు తెలియజేయండి.
ఆర్టికల్ సారాంశం
మొంగోడిబి క్లయింట్ గురించి మరియు వివిధ ఉపయోగాల కోసం మీరు మీ సిస్టమ్లో ఎలా కాన్ఫిగర్ చేయవచ్చో తెలుసుకోండి. మరింత తెలుసుకోవడానికి చదవండి.
దీనితో, మేము చివరికి వస్తాము ' మొంగోడిబి క్లయింట్ ' వ్యాసం.