Vodič za MongoDB s Javom
1. Pregled
U ovom ćemo članku pogledati integraciju MongoDB, vrlo popularne baze podataka NoSQL otvorenog koda sa samostalnim Java klijentom.
MongoDB je napisan na jeziku C ++ i ima popriličan broj čvrstih značajki kao što su smanjenje karte, automatsko oštrenje, replikacija, velika dostupnost itd.
2. MongoDB
Počnimo s nekoliko ključnih točaka o samom MongoDB-u:
- pohranjuje podatke u JSON-slične dokumente koji mogu imati različite strukture
- koristi dinamičke sheme, što znači da možemo stvarati zapise, a da ništa unaprijed ne definiramo
- struktura zapisa može se promijeniti jednostavnim dodavanjem novih polja ili brisanjem postojećih
Gore spomenuti model podataka daje nam sposobnost da predstavimo hijerarhijske odnose, da lako pohranimo nizove i druge složenije strukture.
3. Terminologije
Razumijevanje koncepata u MongoDB-u postaje lakše ako ih možemo usporediti s relacijskim strukturama baze podataka.
Pogledajmo analogije između Monga i tradicionalnog MySQL sustava:
- Stol u MySQL-u postaje Kolekcija u Mongu
- Red postaje a Dokument
- Stupac postaje a Polje
- Pridružuje se definirani su kao povezivanje i ugrađen dokumenti
Ovo je pojednostavljeni način da se sagledaju temeljni koncepti MongoDB-a, ali unatoč tome koristan.
Sada, krenimo u implementaciju da bismo razumjeli ovu moćnu bazu podataka.
4. Ovisnosti Mavena
Moramo započeti definiranjem ovisnosti Java upravljačkog programa za MongoDB:
org.mongodb mongo-java-driver 3.4.1
Da biste provjerili je li izdana neka nova verzija knjižnice, izdanja pratite ovdje.
5. Koristeći MongoDB
Sada, krenimo s implementacijom Mongo upita s Javom. Nastavit ćemo s osnovnim CRUD operacijama jer je s njima najbolje započeti.
5.1. Uspostavite vezu s MongoClient
Prvo, napravimo vezu s MongoDB poslužiteljem. S verzijom> = 2.10.0, koristit ćemo MongoClient:
MongoClient mongoClient = novi MongoClient ("localhost", 27017);
A za starije verzije koristite Mongo razred:
Mongo mongo = novi Mongo ("localhost", 27017);
5.2. Povezivanje s bazom podataka
Sada, spojimo se s našom bazom podataka. Zanimljivo je primijetiti da ga ne trebamo stvarati. Kad Mongo vidi da baza podataka ne postoji, stvorit će je za nas:
DB baza podataka = mongoClient.getDB ("myMongoDb");
Ponekad, prema zadanim postavkama, MongoDB radi u ovjerenom načinu. U tom slučaju moramo provjeriti autentičnost tijekom povezivanja s bazom podataka.
To možemo učiniti kako je prikazano u nastavku:
MongoClient mongoClient = novi MongoClient (); DB baza podataka = mongoClient.getDB ("myMongoDb"); boolean auth = database.authenticate ("korisničko ime", "pwd" .toCharArray ());
5.3. Prikaži postojeće baze podataka
Prikažimo sve postojeće baze podataka. Kada želimo koristiti naredbeni redak, sintaksa za prikaz baza podataka slična je MySQL-u:
pokazati baze podataka;
U Javi baze podataka prikazujemo pomoću donjeg isječka:
mongoClient.getDatabaseNames (). forEach (System.out :: println);
Izlaz će biti:
lokalni 0.000 GB myMongoDb 0.000 GB
Iznad, lokalno je zadana Mongo baza podataka.
5.4. Stvoriti Kolekcija
Počnimo s izradom a Kolekcija (tablični ekvivalent za MongoDB) za našu bazu podataka. Nakon što se povežemo s našom bazom podataka, možemo napraviti Kolekcija kao:
database.createCollection ("kupci", null);
Sada, prikažimo sve postojeće zbirke za trenutnu bazu podataka:
database.getCollectionNames (). forEach (System.out :: println);
Izlaz će biti:
kupci
5.5. Spremi - Umetni
The uštedjeti operacija ima semantiku spremi ili ažuriraj: ako je iskaznica je prisutan, izvodi ažuriranje, ako ne - to znači umetnuti.
Kad smo uštedjeti novi kupac:
DBCollection collection = database.getCollection ("kupci"); BasicDBObject dokument = novi BasicDBObject (); document.put ("ime", "Shubham"); document.put ("tvrtka", "Baeldung"); collection.insert (dokument);
Entitet će se umetnuti u bazu podataka:
{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "Shubham", "company": "Baeldung"}
Dalje ćemo pogledati istu operaciju - uštedjeti - sa ažuriranje semantika.
5.6. Spremi - Ažuriraj
Pogledajmo sada uštedjeti s ažuriranje semantika, koja djeluje na postojećeg kupca:
{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "Shubham", "company": "Baeldung"}
Sad, kad mi uštedjeti postojeći kupac - ažurirat ćemo ga:
Upit BasicDBObject = novi BasicDBObject (); query.put ("ime", "Shubham"); BasicDBObject newDocument = novi BasicDBObject (); newDocument.put ("ime", "Ivan"); BasicDBObject updateObject = novi BasicDBObject (); updateObject.put ("$ set", newDocument); collection.update (upit, updateObject);
Baza podataka izgledat će ovako:
{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "John", "company": "Baeldung"}
Kao što vidite, u ovom konkretnom primjeru, uštedjeti koristi semantiku ažuriranje, jer koristimo objekt s danim _iskaznica.
5.7. Čitati Dokument Od Kolekcija
Potražimo a Dokument u Kolekcija postavljanjem upita:
BasicDBObject searchQuery = novi BasicDBObject (); searchQuery.put ("ime", "Ivan"); DBCursor kursor = collection.find (searchQuery); while (cursor.hasNext ()) {System.out.println (cursor.next ()); }
Pokazat će jedino Dokument do sada imamo u svom Kolekcija:
[{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "John", "company": "Baeldung"}]
5.8. Izbrisati a Dokument
Prijeđimo na našu posljednju CRUD operaciju, brisanje:
BasicDBObject searchQuery = novi BasicDBObject (); searchQuery.put ("ime", "Ivan"); collection.remove (searchQuery);
S izvršenom gornjom naredbom, našom jedinom Dokument bit će uklonjen iz Kolekcija.
6. Zaključak
Ovaj je članak bio kratki uvod u upotrebu MongoDB-a s Jave.
Provedbu svih ovih primjera i isječaka koda možete pronaći na GitHubu - ovo je projekt zasnovan na Mavenu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest.