Útmutató a Java-val ellátott MongoDB-hez
1. Áttekintés
Ebben a cikkben megnézzük a MongoDB, egy nagyon népszerű NoSQL nyílt forráskódú adatbázis és egy önálló Java kliens integrálását.
A MongoDB C ++ nyelven íródott, és számos olyan szilárd tulajdonsággal rendelkezik, mint a térképcsökkentés, az automatikus aprítás, a replikáció, a magas rendelkezésre állás stb.
2. MongoDB
Kezdjük néhány kulcsfontosságú ponttal magáról a MongoDB-ről:
- JSON-szerű dokumentumokba tárol adatokat, amelyek különböző felépítésűek lehetnek
- dinamikus sémákat használ, ami azt jelenti, hogy rekordokat készíthetünk anélkül, hogy bármit is előre definiálnánk
- a rekord felépítése egyszerűen megváltoztatható új mezők hozzáadásával vagy a meglévők törlésével
A fent említett adatmodell lehetővé teszi számunkra a hierarchikus kapcsolatok ábrázolását, a tömbök és más összetettebb struktúrák könnyű tárolását.
3. Terminológiák
A fogalmak megértése a MongoDB-ben könnyebbé válik, ha összehasonlíthatjuk őket a relációs adatbázis-struktúrákkal.
Nézzük meg a Mongo és egy hagyományos MySQL rendszer közötti analógiákat:
- asztal a MySQL-ben a Gyűjtemény Mongóban
- Sor válik a Dokumentum
- Oszlop válik a Terület
- Csatlakozik definíciója: összekapcsolása és beágyazott dokumentumokat
Ez természetesen leegyszerűsített módszer a MongoDB alapkoncepcióinak vizsgálatára, ugyanakkor hasznos.
Most merüljünk el a megvalósításban, hogy megértsük ezt a hatékony adatbázist.
4. Maven-függőségek
Először meg kell határoznunk a Java illesztőprogram függőségét a MongoDB számára:
org.mongodb mongo-java-driver 3.4.1
Annak ellenőrzéséhez, hogy a könyvtár új verziója megjelent-e, kövesse itt a kiadásokat.
5. Használata MongoDB
Most kezdjük el végrehajtani a Mongo lekérdezéseket a Java-val. Az alap CRUD műveleteket követjük, mivel ezek a legjobbak a kezdéshez.
5.1. Kapcsolat létesítése a következővel: MongoClient
Először hozzunk létre egy kapcsolatot egy MongoDB szerverrel. A> = 2.10.0 verziónál a MongoClient:
MongoClient mongoClient = új MongoClient ("localhost", 27017);
És régebbi verziók esetén használja Mongo osztály:
Mongo mongo = új mongó ("localhost", 27017);
5.2. Csatlakozás egy adatbázishoz
Most csatlakozzunk az adatbázisunkhoz. Érdekes megjegyezni, hogy nem kell létrehoznunk. Amikor Mongo úgy látja, hogy az adatbázis nem létezik, akkor létrehozza nekünk:
DB adatbázis = mongoClient.getDB ("myMongoDb");
Néha alapértelmezés szerint a MongoDB hitelesített módban fut. Ebben az esetben hitelesítenünk kell, miközben csatlakozunk egy adatbázishoz.
Megtehetjük az alábbiak szerint:
MongoClient mongoClient = új MongoClient (); DB adatbázis = mongoClient.getDB ("myMongoDb"); logikai hitelesítés = adatbázis.authenticate ("felhasználónév", "pwd" .toCharArray ());
5.3. Meglévő adatbázisok megjelenítése
Jelenítsük meg az összes létező adatbázist. Amikor a parancssort akarjuk használni, az adatbázisok megjelenítésének szintaxisa hasonló a MySQL-hez:
adatbázisok megjelenítése;
A Java-ban az alábbi kódrészlet segítségével jelenítjük meg az adatbázisokat:
mongoClient.getDatabaseNames (). forEach (System.out :: println);
A kimenet a következő lesz:
helyi 0,000 GB myMongoDb 0,000 GB
Felett, helyi az alapértelmezett Mongo adatbázis.
5.4. Hozzon létre egy Gyűjtemény
Kezdjük azzal, hogy létrehozunk egy Gyűjtemény (táblázat megfelelője a MongoDB-hez) az adatbázisunkhoz. Miután csatlakoztunk az adatbázisunkhoz, elkészíthetjük a Gyűjtemény mint:
database.createCollection ("ügyfelek", null);
Most jelenítsük meg az összes meglévő gyűjteményt az aktuális adatbázishoz:
database.getCollectionNames (). forEach (System.out :: println);
A kimenet a következő lesz:
ügyfelek
5.5. Mentés - Beszúrás
A mentés művelet rendelkezik mentés vagy frissítés szemantikával: ha egy id jelen van, elvégez egy frissítés, ha nem - akkor egy betét.
Amikor mentés új ügyfél:
DBCollection gyűjtemény = database.getCollection ("ügyfelek"); BasicDBObject dokumentum = új BasicDBObject (); document.put ("név", "Shubham"); document.put ("vállalat", "Baeldung"); gyűjtemény.betét (dokumentum);
Az entitás bekerül egy adatbázisba:
{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "Shubham", "company": "Baeldung"}
Ezután ugyanezt a műveletet fogjuk megvizsgálni - mentés - val vel frissítés szemantika.
5.6. Mentés - frissítés
Most nézzük meg mentés val vel frissítés szemantika, meglévő vevőn működik:
{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "Shubham", "company": "Baeldung"}
Most, amikor mi mentés a meglévő ügyfél - frissítjük:
BasicDBObject lekérdezés = new BasicDBObject (); query.put ("név", "Shubham"); BasicDBObject newDocument = új BasicDBObject (); newDocument.put ("név", "John"); BasicDBObject updateObject = új BasicDBObject (); updateObject.put ("$ set", newDocument); collection.update (lekérdezés, updateObject);
Az adatbázis a következőképpen fog kinézni:
{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "John", "company": "Baeldung"}
Amint láthatja, ebben a konkrét példában mentés szemantikáját használja frissítés, mert az objektumot a megadottal használjuk _id.
5.7. Olvasni egy Dokumentum A-tól Gyűjtemény
Keressük meg a Dokumentum a Gyűjtemény lekérdezés készítésével:
BasicDBObject searchQuery = új BasicDBObject (); searchQuery.put ("név", "John"); DBCursor kurzor = collection.find (searchQuery); while (kurzor.hasNext ()) {System.out.println (kurzor.next ()); }
Ez mutatja az egyetlen Dokumentum mára a mi Gyűjtemény:
[{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "John", "company": "Baeldung"}]
5.8. Töröl a Dokumentum
Térjünk át az utolsó CRUD műveletre, törlés:
BasicDBObject searchQuery = új BasicDBObject (); searchQuery.put ("név", "John"); collection.remove (searchQuery);
A fenti parancs végrehajtásával csak mi Dokumentum eltávolításra kerül a Gyűjtemény.
6. Következtetés
Ez a cikk egy gyors bevezetés volt a Java-ból származó MongoDB használatához.
Ezeknek a példáknak és kódrészleteknek a megvalósítása megtalálható a GitHub-on - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.