Υποστηρίζει το MongoDB Java
Ξεκινώντας με το MongoDB και το Java – CRUD Operations Tutorial
Μπορείτε να ορίσετε το com.μούγκος.Ιδιοκτησία Writeconcern που θα χρησιμοποιήσει το Mongotemplate για εργασίες εγγραφής εάν δεν έχει ακόμη καθοριστεί μέσω του οδηγού σε υψηλότερο επίπεδο όπως το COM.μούγκος.Μαγκό. Εάν η ιδιότητα WriteConcern της Mongotemplate δεν έχει οριστεί, θα προεπιλεγεί σε αυτό που έχει οριστεί στη ρύθμιση DB ή συλλογής του οδηγού MongoDB.
Περίληψη
Σε αυτό το σεμινάριο, θα διερευνήσουμε πώς να ξεκινήσετε με το MongoDB και το Java. Θα καλύψουμε τις βασικές λειτουργίες CRUD (Δημιουργία, Ανάγνωση, Ενημέρωση, Διαγραφή) χρησιμοποιώντας το πρόγραμμα οδήγησης Java της MongoDB και Data MongoDB της MongoDB.
Βασικά σημεία:
- Η υποστήριξη MongoDB για Java περιλαμβάνει ένα ευρύ φάσμα χαρακτηριστικών.
- Το Spring παρέχει υποστήριξη διαμόρφωσης για το MongoDB χρησιμοποιώντας κλάσεις @Configuration με βάση τη Java ή ένα χώρο ονομάτων XML.
- Η κλάση Mongotemplate είναι μια χρήσιμη χρησιμότητα για την εκτέλεση κοινών λειτουργιών MongoDB και χαρτογράφηση αντικειμένων μεταξύ εγγράφων και POJOS.
- Η μετάφραση εξαίρεσης στη φορητή Access Access της άνοιξης υποστηρίζεται η ιεραρχία εξαίρεσης δεδομένων.
- Η υπηρεσία μετατροπής της άνοιξης ενσωματώνεται με τη χαρτογράφηση αντικειμένων πλούσιου σε χαρακτηριστικά του MongoDB.
- Τα μεταδεδομένα χαρτογράφησης βασισμένα σε σχολιασμό είναι διαθέσιμα και μπορούν να επεκταθούν για να υποστηρίξουν άλλες μορφές.
- Υποστηρίζονται τα συμβάντα παραμονής και χαρτογράφησης του κύκλου ζωής.
- Παρέχονται ερωτήματα, κριτήρια, κριτήρια και ενημέρωση DSLs με βάση τη Java.
- Η αυτόματη εφαρμογή των διεπαφών αποθήκευσης υποστηρίζεται, συμπεριλαμβανομένων των προσαρμοσμένων μεθόδων εύρεσης.
- Η ενσωμάτωση querydsl επιτρέπει την αποκοπή τύπου.
- Υποστηρίζεται η επιμονή σταυροειδών καταστημάτων, επιτρέποντας την παραμονή/ανάκτηση των οντοτήτων JPA.
- Παρέχεται ένα log4j log appender για την ενσωμάτωση MongoDB.
- Η γεωγραφική ολοκλήρωση είναι διαθέσιμη για συνεργασία με γεωχωρικά δεδομένα.
Ερωτήσεις:
- Ε1: Τι χαρακτηριστικά υποστηρίζει το MongoDB για το Java?
- Ε2: Πώς μπορούμε να διαμορφώσουμε το MongoDB την άνοιξη?
- Ε3: Ποια είναι η κλάση mongotemplate που χρησιμοποιείται για?
- Ε4: Πώς χειρίζεται οι εξαιρέσεις της άνοιξης στις λειτουργίες MongoDB?
- Ε5: Ενσωμάτωση MongoDB με χαρτογράφηση αντικειμένων υποστήριξης ελατηρίου?
- Ε6: Μπορεί το MongoDB να υποστηρίξει άλλες μορφές μεταδεδομένων?
- Ε7: Η MongoDB υποστηρίζει την επιμονή και τη χαρτογράφηση συμβάντων ζωής?
- Q8: Ποιο είναι το πλεονέκτημα της χρήσης ερωτημάτων, κριτηρίων, κριτηρίων και ενημέρωσης στο MongoDB με βάση τη Java?
- Ε9: Μπορεί να ανοίξει αυτόματα τις προσαρμοσμένες μεθόδους εύρεσης σε διεπαφές αποθήκευσης?
- Q10: Ποιο είναι το πλεονέκτημα της ενσωμάτωσης querydsl στο MongoDB?
- Q11: Μπορεί το MongoDB να χρησιμοποιηθεί για επιμονή σταυροειδών καταστημάτων?
- Ε12: Το MongoDB παρέχει ένα log4j log appender?
- Ε13: Υποστηρίζει γεωχωρικά δεδομένα MongoDB?
A1: Η υποστήριξη MongoDB για το Java περιλαμβάνει ένα ευρύ φάσμα χαρακτηριστικών, όπως υποστήριξη διαμόρφωσης ελατηρίου, χαρτογράφηση αντικειμένων, μετάφραση εξαίρεσης και πολλά άλλα.
A2: Το MongoDB μπορεί να διαμορφωθεί την άνοιξη χρησιμοποιώντας κλάσεις @Configuration που βασίζονται σε Java ή ένα χώρο ονομάτων XML.
A3: Η κλάση Mongotemplate είναι μια κλάση βοηθού που αυξάνει την παραγωγικότητα με την εκτέλεση κοινών λειτουργιών MongoDB και παρέχοντας χαρτογράφηση αντικειμένων μεταξύ εγγράφων και pojos.
A4: Η άνοιξη μεταφράζει εξαιρέσεις στη φορητή ιεραρχία εξαίρεσης πρόσβασης δεδομένων.
A5: Ναι, η ενσωμάτωση MongoDB με το Spring περιλαμβάνει πλούσια χαρτογράφηση αντικειμένων που είναι ενσωματωμένη στην υπηρεσία μετατροπής της Spring’s.
A6: Ναι, τα μεταδεδομένα χαρτογράφησης που βασίζονται σε σχολιασμό στο MongoDB μπορούν να επεκταθούν για να υποστηρίξουν άλλες μορφές μεταδεδομένων.
A7: Ναι, το MongoDB υποστηρίζει συμβάντα επιμονής και χαρτογράφησης.
A8: Το ερώτημα, τα κριτήρια, τα κριτήρια και η ενημέρωση DSLs που βασίζονται σε Java παρέχουν έναν πιο ασφαλή και βολικό τρόπο για την οικοδόμηση ερωτημάτων και ενημέρωσης των λειτουργιών στο MongoDB.
A9: Ναι, η άνοιξη μπορεί να εφαρμόσει αυτόματα τις προσαρμοσμένες μεθόδους εύρεσης σε διεπαφές αποθήκευσης.
A10: Η ενσωμάτωση querydsl στο MongoDB επιτρέπει την ασφαλή αναζήτηση τύπου.
A11: Ναι, το MongoDB υποστηρίζει την επιμονή διασταυρούμενης καταστήματος, επιτρέποντας την επιμέλεια/ανάκτηση οντοτήτων JPA.
A12: Ναι, το MongoDB παρέχει ένα log4j log appender για ενσωμάτωση με log4j.
A13: Ναι, το MongoDB παρέχει ενσωμάτωση για συνεργασία με γεωχωρικά δεδομένα.
Ξεκινώντας
Για να ξεκινήσετε με την υποστήριξη του Spring MongoDB, θα χρειαστείτε MongoDB 1.4 ή υψηλότερη και Java SE 5 ή υψηλότερη. Συνιστάται να χρησιμοποιήσετε την τελευταία έκδοση παραγωγής (2.0.x Από αυτή τη γραφή).
Ακολουθήστε αυτά τα βήματα για να ρυθμίσετε ένα εργασιακό περιβάλλον:
- Ρυθμίστε έναν τρέχοντα διακομιστή MongoDB. Ανατρέξτε στον Οδηγό γρήγορης εκκίνησης MongoDB για οδηγίες σχετικά με το πώς να ξεκινήσετε μια παρουσία MongoDB.
- Δημιουργήστε ένα έργο με βάση την άνοιξη στο STS (Spring Tool Suite) ή οποιοδήποτε άλλο ολοκληρωμένο περιβάλλον ανάπτυξης (IDE).
- Συμπεριλάβετε την εξάρτηση MongoDB του Spring Data στο POM του έργου σας.Αρχείο XML:
- Βεβαιωθείτε ότι έχετε τη σωστή έκδοση του Spring που καθορίζεται στο POM σας.XML:
- Προσθέστε το αποθετήριο ορόσημο της άνοιξης στο POM σας.XML:
- Ρυθμίστε το επίπεδο καταγραφής log4j για εντοπισμό σφαλμάτων στο log4j.Αρχείο ιδιοτήτων:
- Δημιουργήστε μια απλή τάξη ατόμων για να επιμείνετε:
- Δημιουργήστε μια κύρια εφαρμογή για εκτέλεση:
<εξάρτηση>
<ομαδικός>org.ελατήριο.δεδομένα</groupID>
<τεχνητός>ελατήριο-data-mongodb</artifactid>
<εκδοχή>1.1.0.ΕΛΕΥΘΕΡΩΣΗ</εκδοχή>
</εξάρτηση>
<ιδιότητες>
<άνοιξη.εκδοχή>3.1.2.ΕΛΕΥΘΕΡΩΣΗ</άνοιξη.εκδοχή>
</ιδιότητες>
<αποθετήρια>
<αποθήκη>
<ταυτότητα>ελατήριο-milestone</ταυτότητα>
<όνομα>Αποθήκευση ορόσημων Spring Maven</όνομα>
<url>http: // repo.σπινθηροβόλος.org/libs-milestone</URL>
</αποθήκη>
</αποθετήρια>
log4j.κατηγορία.org.ελατήριο.δεδομένα.έγγραφο.mongoDB = debug
log4j.ερείπια.στεγανόστρωμα.διάταξη.ConversionPattern = %d %5p %40.40C:%4L -%m%n
org.άνοιξη.μούγκος.παράδειγμα;
δημόσιο άτομο {
ιδιωτικό αναγνωριστικό συμβολοσειράς
ιδιωτικό όνομα συμβολοσειράς
ιδιωτική ηλικία int ·
δημόσιο άτομο (όνομα συμβολοσειράς, int ηλικία) {
Αυτό.Όνομα = όνομα;
Αυτό.Ηλικία = ηλικία
}
δημόσια συμβολοσειρά getId () {
Αναγνωριστικό επιστροφής
}
δημόσια συμβολοσειρά getName () {
Όνομα επιστροφής;
}
δημόσιο int getage () {
Ηλικία επιστροφής
}
@Καταπατώ
δημόσια συμβολοσειρά toString () {
επιστροφή "άτομο [id =" + id + ", όνομα =" + όνομα + ", ηλικία =" + ηλικία + "]";
}
}
org.άνοιξη.μούγκος.παράδειγμα;
Εισαγωγή στατικού org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Κριτήρια.που;
εισαγωγή org.απάχης.κοινά.ξύλευση.Κούτσουρο;
εισαγωγή org.απάχης.κοινά.ξύλευση.Logactory;
εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongooperations;
εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongotemplate;
εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Ερώτηση;
εισαγωγή com.μούγκος.Mongo;
δημόσια τάξη mongoapp {
ιδιωτικό στατικό τελικό αρχείο καταγραφής = logFactory.getLog (mongoapp.τάξη);
Το δημόσιο στατικό κενό κύριο (String [] args) ρίχνει την εξαίρεση {
Mongooperations mongoops = νέο mongotemplate (νέο mongo (), "βάση δεδομένων");
μούγκο.εισάγετε (νέο άτομο ("Joe", 34));
κούτσουρο.πληροφορίες (mongoops.FindOne (νέο ερώτημα (όπου ("όνομα").είναι ("Joe"), άτομο.τάξη));
}
}
Ξεκινώντας με το MongoDB και το Java – CRUD Operations Tutorial
Μπορείτε να ορίσετε το com.μούγκος.Ιδιοκτησία Writeconcern που θα χρησιμοποιήσει το Mongotemplate για εργασίες εγγραφής εάν δεν έχει ακόμη καθοριστεί μέσω του οδηγού σε υψηλότερο επίπεδο όπως το COM.μούγκος.Μαγκό . Εάν η ιδιότητα WriteConcern της Mongotemplate δεν έχει οριστεί, θα προεπιλεγεί σε αυτό που έχει οριστεί στη ρύθμιση DB ή συλλογής του οδηγού MongoDB.
Υποστηρίζει το MongoDB Java
Η υποστήριξη MongoDB περιέχει ένα ευρύ φάσμα χαρακτηριστικών που συνοψίζονται παρακάτω.
- Υποστήριξη διαμόρφωσης ελατηρίου χρησιμοποιώντας κλάσεις @Configuration με βάση το Java ή ένα χώρο ονομάτων XML για μια εμφάνιση οδηγού Mongo και σετ ρεπλίκα
- Mongotemplate Helper Class που αυξάνει την παραγωγικότητα που εκτελεί κοινές επιχειρήσεις Mongo. Περιλαμβάνει ενσωματωμένη χαρτογράφηση αντικειμένων μεταξύ εγγράφων και pojos.
- Μετάφραση εξαίρεσης στη φορητή ιεραρχία εξαίρεσης πρόσβασης δεδομένων της άνοιξης
- Χαρακτηριστικά πλούσια χαρτογράφηση αντικειμένων ενσωματωμένη με την υπηρεσία μετατροπής της άνοιξης
- Μεταδεδομένα χαρτογράφησης βασισμένα σε σχολιασμό, αλλά επεκτάθηκαν για την υποστήριξη άλλων μορφών μεταδεδομένων
- Εκδήλωση επιμονής και χαρτογράφησης
- Ερώτηση, κριτήρια, κριτήρια και ενημέρωση DSLS που βασίζεται στην Java
- Αυτόματη υλοποίηση διεπαφών αποθετηρίου, συμπεριλαμβανομένης της υποστήριξης για τις προσαρμοσμένες μεθόδους εύρεσης.
- Querydsl ενσωμάτωση για την υποστήριξη ερωτημάτων ασφαλείας τύπου.
- Cross -Store Ponstistance – Υποστήριξη για οντότητες JPA με πεδία διαφανώς διατηρήθηκε/ανακτήθηκε χρησιμοποιώντας το MongoDB
- Log4j log appender
- Γεωχωτική ολοκλήρωση
Για τις περισσότερες εργασίες θα βρεθείτε χρησιμοποιώντας το Mongotemplate ή την υποστήριξη του αποθετηρίου που αξιοποιούν τόσο τη λειτουργικότητα των πλούσιων χαρτογράφησης. Το Mongotemplate είναι το μέρος για να αναζητήσετε πρόσβαση στη λειτουργικότητα, όπως οι μετρητές αύξησης ή οι λειτουργίες ad-hoc crud. Το Mongotemplate παρέχει επίσης μεθόδους επανάκλησης, ώστε να είναι εύκολο για εσάς να πάρετε τα αντικείμενα API χαμηλού επιπέδου όπως το ORG.μαγκό.DB για επικοινωνία απευθείας με το MongoDB. Ο στόχος με τις συμβάσεις ονομασίας σε διάφορα αντικείμενα API είναι να αντιγράψουμε αυτά στο βασικό οδηγό MongoDB Java, ώστε να μπορείτε εύκολα να χαρτογραφήσετε τις υπάρχουσες γνώσεις σας στα API Spring.
5.1 Ξεκινώντας
Η υποστήριξη του Spring MongoDB απαιτεί το MongoDB 1.4 ή υψηλότερη και Java SE 5 ή υψηλότερη. Η τελευταία έκδοση παραγωγής (2.0.x ως από αυτό το γράψιμο) συνιστάται. Ένας εύκολος τρόπος για να δημιουργήσετε ένα περιβάλλον εργασίας είναι να δημιουργήσετε ένα έργο με βάση την άνοιξη στο STS.
Πρώτα πρέπει να ρυθμίσετε έναν εκτελεστή διακομιστή MongoDB. Ανατρέξτε στον Οδηγό γρήγορης εκκίνησης MongoDB για μια εξήγηση για το πώς να ξεκινήσετε μια παρουσία MongoDB. Μόλις εγκατασταθεί η εκκίνηση του MongoDB είναι συνήθως θέμα εκτέλεσης της ακόλουθης εντολής: mongo_home/bin/mongod
Για να δημιουργήσετε ένα έργο ελατηρίου στο STS, μεταβείτε στο αρχείο -> Νέο -> Πρόγραμμα Spring Project -> Simple Spring Utility Project -> Πατήστε ΝΑΙ όταν σας ζητηθεί. Στη συνέχεια, εισαγάγετε ένα έργο και ένα όνομα πακέτου όπως org.άνοιξη.μούγκος.παράδειγμα.
Στη συνέχεια, προσθέστε τα παρακάτω στο POM.Τμήμα εξαρτήσεων XML.
org.ελατήριο.δεδομένα ελατήριο-data-mongodb 1.1.0.ΕΛΕΥΘΕΡΩΣΗ Αλλάξτε επίσης την έκδοση της άνοιξης στο POM.XML να είναι
3.1.2.ΕΛΕΥΘΕΡΩΣΗ Θα χρειαστεί επίσης να προσθέσετε τη θέση του αποθετηρίου Spring Milestone για το Maven στο POM σας.XML που βρίσκεται στο ίδιο επίπεδο του στοιχείου σας
ελατήριο-milestone Αποθήκευση ορόσημων Spring Maven http: // repo.σπινθηροβόλος.org/libs-milestone Το αποθετήριο είναι επίσης περιηγητό εδώ.
Μπορεί επίσης να θέλετε να ορίσετε το επίπεδο καταγραφής για να εντοπίσετε σφάλματα για να δείτε μερικές πρόσθετες πληροφορίες, να επεξεργαστείτε το log4j.Αρχείο ιδιοτήτων για να έχει
log4j.κατηγορία.org.ελατήριο.δεδομένα.έγγραφο.mongoDB = debug log4j.ερείπια.στεγανόστρωμα.διάταξη.ConversionPattern = %d %5p %40.40C:%4L -%m%n
Δημιουργήστε μια απλή τάξη ατόμων για να επιμείνετε
πακέτο org.άνοιξη.μούγκος.παράδειγμα; δημόσιο τάξη Πρόσωπο < ιδιωτικός Αναγνωριστικό συμβολοσειράς ιδιωτικός Όνομα συμβολοσειράς; ιδιωτικός int ηλικία; δημόσιο Πρόσωπο (όνομα συμβολοσειράς, int ηλικία) < Αυτό.Όνομα = όνομα; Αυτό.Ηλικία = ηλικία. > δημόσιο String getId () < ΕΠΙΣΤΡΟΦΗ ταυτότητα; > δημόσιο String getName () < ΕΠΙΣΤΡΟΦΗ όνομα; > δημόσιο int getage () < ΕΠΙΣΤΡΟΦΗ ηλικία; > @Καταπατώ δημόσιο String toString () < ΕΠΙΣΤΡΟΦΗ "Πρόσωπο [id hl-string"> ", όνομα hl-string"> ", ηλικία hl-string"> "]"; >>
Και μια κύρια εφαρμογή για εκτέλεση
πακέτο org.άνοιξη.μούγκος.παράδειγμα; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Κριτήρια.που; εισαγωγή org.απάχης.κοινά.ξύλευση.Κούτσουρο; εισαγωγή org.απάχης.κοινά.ξύλευση.Logactory; εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongooperations; εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongotemplate; εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Ερώτηση; εισαγωγή com.μούγκος.Mongo; δημόσιο τάξη Mongoapp < ιδιωτικός στατικός τελικός Log Log = logFactory.getLog (mongoapp.τάξη) δημόσιο στατικός κενός Main (String [] args) ρίχνει Εξαίρεση < MongoOperations mongoOps = νέος Mongotemplate (νέος Mongo (), "βάση δεδομένων") μούγκο.εισάγετε(νέος Πρόσωπο("Τζο", 34)) κούτσουρο.πληροφορίες (mongoops.βρες ένα(νέος Ερώτημα (πού ("όνομα"·.είναι("Τζο")), Άτομο.τάξη)) μούγκο.dropCollection ("πρόσωπο") >>
Αυτό θα παράγει την ακόλουθη έξοδο
10: 01: 32.062 Debug Apping.MongopersistentityIndExcreator: 80 - Ανάλυση κλάσης κλάσης org.άνοιξη.παράδειγμα.Πρόσωπο για πληροφορίες ευρετηρίου. 10: 01: 32,265 Debug Ramework.δεδομένα.μούγκος.πυρήνας.MongoTemplate: 631 - Εισαγωγή DBObject Περιέχει πεδία: [_class, ηλικία, όνομα] στη συλλογή: Πρόσωπο 10: 01: 32.765 Debug RameWork.δεδομένα.μούγκος.πυρήνας.Mongotemplate: 1243 - FindOne χρησιμοποιώντας το ερώτημα: < "name" : "Joe">στο DB.Συλλογή: βάση δεδομένων.Πρόσωπο 10: 01: 32,953 info org.άνοιξη.μούγκος.παράδειγμα.MongoApp: 25 - Πρόσωπο [id = 4ddbba3c0be56b7e1b210166, όνομα = joe, ηλικία = 34] 10: 01: 32.984 debug ramework.δεδομένα.μούγκος.πυρήνας.Mongotemplate: 375 - Συλλογή που έχει πέσει [βάση δεδομένων.πρόσωπο]
Ακόμη και σε αυτό το απλό παράδειγμα, υπάρχουν λίγα πράγματα που πρέπει να λάβετε υπόψη
- Μπορείτε να δημιουργήσετε την Κεντρική Κλάση Βοηθού του Spring Mongo, Mongotemplate, χρησιμοποιώντας το Standard Com.μούγκος.Το αντικείμενο Mongo και το όνομα της βάσης δεδομένων για χρήση.
- Το Mapper λειτουργεί ενάντια στα τυπικά αντικείμενα POJO χωρίς την ανάγκη για πρόσθετα μεταδεδομένα (αν και μπορείτε να παρέχετε προαιρετικά αυτές τις πληροφορίες. Δες εδώ.·.
- Οι συμβάσεις χρησιμοποιούνται για τον χειρισμό του πεδίου ταυτότητας, μετατρέποντας το ως αντικειμενικό όταν αποθηκεύεται στη βάση δεδομένων.
- Οι συμβάσεις χαρτογράφησης μπορούν να χρησιμοποιήσουν την πρόσβαση πεδίου. Παρατηρήστε ότι η τάξη ατόμου έχει μόνο getters.
- Εάν τα ονόματα των παραγωγών κατασκευαστών ταιριάζουν με τα ονόματα πεδίων του αποθηκευμένου εγγράφου, θα χρησιμοποιηθούν για να δημιουργήσουν το αντικείμενο
5.2 παραδείγματα αποθετηρίου
Υπάρχει ένα αποθετήριο Github με διάφορα παραδείγματα που μπορείτε να κατεβάσετε και να παίξετε για να πάρετε μια αίσθηση για το πώς λειτουργεί η βιβλιοθήκη.
5.3 Σύνδεση με MongoDB με άνοιξη
Ένα από τα πρώτα καθήκοντα όταν χρησιμοποιείτε το MongoDB και το Spring είναι να δημιουργήσετε ένα com.μούγκος.Αντικείμενο Mongo χρησιμοποιώντας το δοχείο της ΔΟΕ. Υπάρχουν δύο κύριοι τρόποι για να το κάνετε αυτό, είτε χρησιμοποιώντας μεταδεδομένα φασολιών με βάση το Java είτε μεταδεδομένα φασολιών με βάση το XML. Αυτά συζητούνται στις επόμενες ενότητες.
Για όσους δεν είναι εξοικειωμένοι με τον τρόπο διαμόρφωσης του δοχείου ελατηρίου χρησιμοποιώντας μεταδεδομένα φασολιών που βασίζονται σε Java αντί για μεταδεδομένα με βάση το XML, δείτε την εισαγωγή υψηλού επιπέδου στα έγγραφα αναφοράς, καθώς και την λεπτομερή τεκμηρίωση εδώ.
5.3.1 Καταγράψτε μια παρουσία Mongo χρησιμοποιώντας μεταδεδομένα με βάση το Java
Ένα παράδειγμα χρήσης μεταδεδομένων φασολιών που βασίζονται σε Java για την εγγραφή μιας παρουσία ενός com.μούγκος.Το Mongo εμφανίζεται παρακάτω
Παράδειγμα 5.1. Καταχώριση ενός com.μούγκος.Mongo Object χρησιμοποιώντας μεταδεδομένα φασολιών με βάση Java
@Διαμόρφωση δημόσιο τάξη Appconfig < / * * Χρησιμοποιήστε το πρότυπο API προγράμματος οδήγησης Mongo για να δημιουργήσετε ένα com.μούγκος.Στιγμιότυπο του Mongo. */ δημόσιο @Φασόλι Mongo Mongo () ρίχνει Άγνωστο < ΕΠΙΣΤΡΟΦΗ νέος Mongo ("Localhost") >>
Αυτή η προσέγγιση σας επιτρέπει να χρησιμοποιήσετε το πρότυπο com.μούγκος.Mongo API που ενδέχεται να χρησιμοποιήσετε ήδη τη χρήση, αλλά επίσης μολύνει τον κώδικα με την εικονική εξαίρεση που δεν έχει ελέγξει την εξαίρεση. Η χρήση της ελεγμένης εξαίρεσης δεν είναι επιθυμητή καθώς τα μεταδεδομένα φασολιών με βάση το Java χρησιμοποιούν μεθόδους ως μέσο για τον καθορισμό εξαρτήσεων αντικειμένων, καθιστώντας τον κωδικό κλήσης γεμάτο.
Μια εναλλακτική λύση είναι η καταχώρηση μιας παρουσία του com.μούγκος.Παράρτημα Mongo με το δοχείο χρησιμοποιώντας το MongofactoryBean της Spring . Σε σύγκριση με την παράδοση ενός com.μούγκος.Η εμφάνιση Mongo απευθείας, η προσέγγιση του εργοστασίου δεν ρίχνει μια ελεγχόμενη εξαίρεση και έχει το πρόσθετο πλεονέκτημα της παροχής του εμπορευματοκιβωτίου με μια εφαρμογή ExceptionTranslator που μεταφράζει τις εξαιρέσεις MongoDB σε εξαιρέσεις στο Portable Data AccessException ιεραρχίας για τις κατηγορίες πρόσβασης δεδομένων που ενώνονται με το @Repository Annotation. Αυτή η ιεραρχία και η χρήση του @Repository περιγράφεται στις λειτουργίες υποστήριξης DAO της άνοιξης.
Ένα παράδειγμα μεταδεδομένων φασολιών που βασίζεται σε Java που υποστηρίζει τη μετάφραση εξαίρεσης σε κατηγορίες @Repository σχολιάζεται παρακάτω:
Παράδειγμα 5.2. Καταχώριση ενός com.μούγκος.Mongo Object χρησιμοποιώντας το MongofactoryBean της Spring και επιτρέποντας την υποστήριξη μετάφρασης εξαίρεσης της άνοιξης
@Διαμόρφωση δημόσιο τάξη Appconfig < / * * Bean Factory που δημιουργεί το com.μούγκος.Παράπονο Mongo */ δημόσιο @Φασόλι Mongofactorybean mongo () < MongoFactoryBean mongo = νέος MongofactoryBean (); μαγκό.sethost ("Localhost") ΕΠΙΣΤΡΟΦΗ Mongo; >>
Για πρόσβαση στο com.μούγκος.Mongo Object που δημιουργήθηκε από το MongofactoryBean σε άλλα @configuration ή τις δικές σας τάξεις, χρησιμοποιήστε ένα “ιδιωτικό @Autowired Mongo Mongo;” Field.
5.3.2 Εγγραφή μιας στιγμιότυπου Mongo χρησιμοποιώντας μεταδεδομένα βασισμένα σε XML
Ενώ μπορείτε να χρησιμοποιήσετε το παραδοσιακό χώρο ονομάτων XML της Spring για να καταγράψετε μια παρουσία του COM.μούγκος.Mongo με το δοχείο, το XML μπορεί να είναι αρκετά verbose καθώς είναι γενικός σκοπός. Οι χώροι ονομάτων XML είναι μια καλύτερη εναλλακτική λύση για τη διαμόρφωση κοινώς χρησιμοποιούμενων αντικειμένων όπως το παράδειγμα Mongo. Ο χώρος ονομάτων Mongo σας ωθεί για να δημιουργήσετε μια τοποθεσία διακομιστή Mongo Instance, replica-sets και επιλογές.
Για να χρησιμοποιήσετε τα στοιχεία ονομάτων Mongo θα χρειαστεί να αναφέρετε το σχήμα Mongo:
Παράδειγμα 5.3. Schema XML για να διαμορφώσετε το mongodb
xmlns="http: // www.ελατήριο.org/schema/φασόλια " XMLNS: XSI="http: // www.W3.org/2001/xmlschema-instance " XMLNS: Πλαίσιο="http: // www.ελατήριο.org/schema/περιβάλλον " XMLNS: Mongo="http: // www.ελατήριο.org/schema/data/mongo " XSI: Σχηματισμός= "http: // www.ελατήριο.org/schema/περιβάλλον http: // www.ελατήριο.org/schema/context/spring-context-3.0.XSD http: // www.ελατήριο.org/schema/data/mongo http: // www.ελατήριο.org/schema/data/mongo/spring-mongo-1.0.XSD http: // www.ελατήριο.org/schema/φασόλια http: // www.ελατήριο.org/schema/φασόλια/άνοιξη-φασόλια-3.0.xsd "> Μια πιο προηγμένη διαμόρφωση με mongooptions εμφανίζεται παρακάτω (σημειώστε ότι αυτές δεν συνιστώνται τιμές)
Παράδειγμα 5.4. XML σχήμα για να διαμορφώσετε ένα com.μούγκος.Αντικείμενο Mongo με mongooptions
πλήθος="Localhost" Λιμάνι="27017"> συνδέσεις ανά ξενιστή="8" νήματα-επιφανειακά με μπλοκ για σύνδεση="4" σύνδεσμος="1000" μέγιστος χρόνος="1500>" αυτόματη σύνδεση="αληθής" κατόχου-alive="αληθής" χρονική περιγραφή="1500" σκλάβος="αληθής" αρίθμος γραφής="1" Χρόνος εγγραφής="0" write-fsync="αληθής"/> Εμφανίζεται μια διαμόρφωση που χρησιμοποιεί σετ ρεπλίκα παρακάτω.
Παράδειγμα 5.5. XML Schema για διαμόρφωση com.μούγκος.Αντικείμενο Mongo με σύνολα ρεπλίκα
ταυτότητα="Replicasetmongo" αντίγραφο=127.0.0.1: 27017, Localhost: 27018 "/> 5.3.3 Η διεπαφή MongoDBactory
Ενώ.μούγκος.Το Mongo είναι το σημείο εισόδου στο API του προγράμματος οδήγησης MongoDB, που συνδέεται με μια συγκεκριμένη παρουσία βάσης δεδομένων MongoDB απαιτεί πρόσθετες πληροφορίες όπως το όνομα της βάσης δεδομένων και ένα προαιρετικό όνομα χρήστη και κωδικό πρόσβασης. Με αυτές τις πληροφορίες μπορείτε να αποκτήσετε ένα com.μούγκος.DB αντικείμενο και πρόσβαση σε όλες τις λειτουργίες μιας συγκεκριμένης παρουσίας βάσης δεδομένων MongoDB. Η άνοιξη παρέχει το org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Η διεπαφή MongoDBactory που φαίνεται παρακάτω στη συνδεσιμότητα bootstrap στη βάση δεδομένων.
δημόσιο διεπαφή Mongodbactory < DB getDb() ρίχνει DataAccessException; DB getDB (συμβολοσειρά dbname) ρίχνει DataAccessException; >
Οι ακόλουθες ενότητες δείχνουν πώς μπορείτε να χρησιμοποιήσετε το contiainer είτε με Java είτε με τα μεταδεδομένα που βασίζονται σε XML για να διαμορφώσετε μια παρουσία της διεπαφής MongoDBactory. Με τη σειρά του, μπορείτε να χρησιμοποιήσετε την παρουσία MongoDBactory για να διαμορφώσετε το mongotemplate.
Η τάξη org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Το SimpleMongodBactory παρέχει εργαλεία στη διεπαφή MongoDBactory και δημιουργείται με ένα πρότυπο com.μούγκος.Παράρτημα Mongo, το όνομα της βάσης δεδομένων και ένα προαιρετικό org.ελατήριο.δεδομένα.αυθεντικοποίηση.Το επιχείρημα του κατασκευαστή UserCredentials.
Αντί να χρησιμοποιήσετε το δοχείο της ΔΟΕ για να δημιουργήσετε μια παρουσία του mongotemplate, μπορείτε απλώς να τα χρησιμοποιήσετε σε πρότυπο κώδικα Java όπως φαίνεται παρακάτω.
δημόσιο τάξη Mongoapp < ιδιωτικός στατικός τελικός Log Log = logFactory.getLog (mongoapp.τάξη) δημόσιο στατικός κενός Main (String [] args) ρίχνει Εξαίρεση < MongoOperations mongoOps = νέος Mongotemplate (Νέο SimpleMongodBactory (νέο Mongo (), "Database")) μούγκο.εισάγετε(νέος Πρόσωπο("Τζο", 34)) κούτσουρο.πληροφορίες (mongoops.βρες ένα(νέος Ερώτημα (πού ("όνομα"·.είναι("Τζο")), Άτομο.τάξη)) μούγκο.dropCollection ("πρόσωπο") >>
Ο κώδικας με έντονους χαρακτήρες υπογραμμίζει τη χρήση του SimpleMongodbactory και είναι η μόνη διαφορά μεταξύ της καταχώρισης που εμφανίζεται στην ενότητα Getting Starting.
5.3.4 Εγγραφή σε μια παράσταση MongoDBactory χρησιμοποιώντας μεταδεδομένα με βάση το Java
Για να καταχωρίσετε μια παρουσία MongoDBactory με το δοχείο, γράφετε κώδικα όπως αυτό που επισημάνθηκε στην προηγούμενη λίστα κώδικα. Ένα απλό παράδειγμα εμφανίζεται παρακάτω
@Διαμόρφωση δημόσιο τάξη Μνησικοποίηση < δημόσιο @Φασόλι MongoDBactory mongoDBactory () ρίχνει Εξαίρεση < ΕΠΙΣΤΡΟΦΗ νέος Simplemongodbactory (νέος Mongo (), "βάση δεδομένων") >>
Για να ορίσετε το όνομα χρήστη και τον κωδικό πρόσβασης, δημιουργήστε μια παρουσία του org.ελατήριο.δεδομένα.αυθεντικοποίηση.UserCredentials και μεταβιβάστε το στον κατασκευαστή όπως φαίνεται παρακάτω. Αυτή η λίστα εμφανίζει επίσης χρησιμοποιώντας το MongoDBactory Register Μια παρουσία του mongotemplate με το δοχείο.
@Διαμόρφωση δημόσιο τάξη Μνησικοποίηση < δημόσιο @Φασόλι MongoDBactory mongoDBactory () ρίχνει Εξαίρεση < UserCredentials userCredentials = νέος UserCredentials ("Τζο", "μυστικό") ΕΠΙΣΤΡΟΦΗ νέος Simplemongodbactory (νέος Mongo (), "βάση δεδομένων", userCredentials)? > δημόσιο @Φασόλι Mongotemplate mongotemplate () ρίχνει Εξαίρεση < ΕΠΙΣΤΡΟΦΗ νέος Mongotemplate (mongoDBFactory ()); >>
5.3.5 Εγγραφή σε μια παράσταση MongoDBactory χρησιμοποιώντας μεταδεδομένα βασισμένα σε XML
Ο χώρος ονομάτων Mongo παρέχει έναν τρόπο σέλας για τη δημιουργία ενός SimpleMongodBactory σε σύγκριση με τη χρήση του χώρου ονομάτων. Η απλή χρήση εμφανίζεται παρακάτω
dbname="βάση δεδομένων"> Στο παραπάνω παράδειγμα ένα com.μούγκος.Το Mongo Instance δημιουργείται χρησιμοποιώντας τον προεπιλεγμένο κεντρικό υπολογιστή και τον αριθμό θύρας. Το SimpleMongodBactory που έχει εγγραφεί στο δοχείο αναγνωρίζεται από το αναγνωριστικό ‘MongoDBactory’ εκτός εάν ορίζεται μια τιμή για το χαρακτηριστικό ID.
Μπορείτε επίσης να δώσετε τον κεντρικό υπολογιστή και το λιμάνι για το υποκείμενο com.μούγκος.Παράδειγμα Mongo όπως φαίνεται παρακάτω, εκτός από το όνομα χρήστη και τον κωδικό πρόσβασης για τη βάση δεδομένων.
ταυτότητα="Άλλο MongoDBactory" πλήθος="Localhost" Λιμάνι="27017" dbname="βάση δεδομένων" όνομα χρήστη="Τζο" Κωδικός πρόσβασης="μυστικό"/> Εάν πρέπει να διαμορφώσετε πρόσθετες επιλογές στο COM.μούγκος.Παράρτημα Mongo που χρησιμοποιείται για να δημιουργήσει ένα SimpleMongodBactory Μπορείτε να ανατρέξετε σε ένα υπάρχον φασόλι χρησιμοποιώντας το χαρακτηριστικό Mongo-Ref όπως φαίνεται παρακάτω. Για να δείξετε ένα άλλο κοινό πρότυπο χρήσης, αυτή η λίστα δείχνει τη χρήση ενός protectholder property για να παραμένει τη διαμόρφωση και να δημιουργήσει mongotemplate .
τοποθεσία="classpath:/com/myapp/mongodb/config/mongo.ιδιότητες"/> πλήθος="$" Λιμάνι="$"> συνδέσεις ανά ξενιστή="$" νήματα-επιφανειακά με μπλοκ για σύνδεση="$" σύνδεσμος="$" μέγιστος χρόνος="$" αυτόματη σύνδεση="$" κατόχου-alive="$" χρονική περιγραφή="$" σκλάβος="$" αρίθμος γραφής="1" Χρόνος εγγραφής="0" write-fsync="αληθής"/> dbname="βάση δεδομένων" mongo-ref="Mongo"/> ταυτότητα="Άλλο Mongotemplate" τάξη="Org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongotemplate "> όνομα="MongoDBactory" ref="MongoDBactory"/> 5.4 Εισαγωγή στο Mongotemplate
Το Mongotemplate της κλάσης, που βρίσκεται στο πακέτο org.ελατήριο.δεδομένα.έγγραφο.MongoDB, είναι η κεντρική κλάση της υποστήριξης MongoDB της άνοιξης που παρέχει ένα πλούσιο χαρακτηριστικό που θα αλληλεπιδράσει με τη βάση δεδομένων. Το πρότυπο προσφέρει λειτουργίες ευκολίας για τη δημιουργία, την ενημέρωση, τη διαγραφή και την ερώτηση για τα έγγραφα MongoDB και παρέχει χαρτογράφηση μεταξύ των αντικειμένων τομέα σας και των εγγράφων MongoDB.
Μόλις ρυθμιστεί, το Mongotemplate είναι ασφαλές για το νήμα και μπορεί να επαναχρησιμοποιηθεί σε πολλαπλές περιπτώσεις.
Η χαρτογράφηση μεταξύ των εγγράφων MongoDB και των κατηγοριών τομέα γίνεται με αναθεώρηση της εφαρμογής του Mongoconverter διεπαφής . Η άνοιξη παρέχει δύο υλοποιήσεις, SimpappingConverter και MongomappingConverter, αλλά μπορείτε επίσης να γράψετε τον δικό σας μετατροπέα. Ανατρέξτε στην ενότητα των Mongocosterters για πιο λεπτομερείς πληροφορίες.
Η κλάση Mongotemplate εφαρμόζει τις διασυνδέσεις . Σε όσο το δυνατόν περισσότερο, οι μέθοδοι για τις μογκώνες ονομάζονται από τις διαθέσιμες μεθόδους στο αντικείμενο συλλογής οδηγού MongoDB, όπως να κάνουν το API γνωστό στους υπάρχοντες προγραμματιστές MongoDB που είναι συνηθισμένοι στο API Driver API. Για παράδειγμα, θα βρείτε μεθόδους όπως “Find”, “FindAndModify”, “FindOne”, “Insert”, “Remove”, “Save”, “Update” και “UpdateMulti”. Ο στόχος του σχεδιασμού ήταν να γίνει όσο το δυνατόν πιο εύκολο να μεταβιβαστεί μεταξύ της χρήσης του οδηγού βάσης MongoDB και των mongooperations . Μία σημαντική διαφορά μεταξύ των δύο API είναι ότι οι mongoperations μπορούν να περάσουν αντικείμενα τομέα αντί για dbobject και υπάρχουν άπταιστα API για ερωτήματα, κριτήρια και λειτουργίες ενημέρωσης αντί να καταναλώνουν ένα DBObject για να καθορίσουν τις παραμέτρους για όσους λειτουργούν.
Ο προτιμώμενος τρόπος αναφοράς των λειτουργιών στο Mongotemplate Instance είναι μέσω της διασύνδεσης Mongooperations .
Η προεπιλεγμένη εφαρμογή του μετατροπέα που χρησιμοποιείται από το Mongotemplate είναι mongomappingConverter. Ενώ ο MongomappingConverter μπορεί να κάνει χρήση πρόσθετων μεταδεδομένων για να καθορίσει τη χαρτογράφηση των αντικειμένων στα έγγραφα, είναι επίσης σε θέση να μετατρέψει αντικείμενα που δεν περιέχουν πρόσθετα μεταδεδομένα χρησιμοποιώντας ορισμένες συμβάσεις για τη χαρτογράφηση των ονομάτων IDS και συλλογής. Αυτές οι συμβάσεις καθώς και η χρήση σχολιασμών χαρτογράφησης εξηγείται στο κεφάλαιο χαρτογράφησης.
Στην απελευθέρωση M2 simplemappingConverter, ήταν η προεπιλογή και αυτή η κλάση έχει πλέον καταργηθεί καθώς η λειτουργικότητά της έχει προσβληθεί από το MongomappingConverter.
Ένα άλλο κεντρικό χαρακτηριστικό του mongotemplate είναι η εξαίρεση μετάφραση εξαιρέσεων που ρίχνονται στον οδηγό MongoDB Java στην ιεραρχία εξαίρεσης Access Access της άνοιξης. Ανατρέξτε στην ενότητα σχετικά με τη μετάφραση εξαίρεσης για περισσότερες πληροφορίες.
Ενώ υπάρχουν πολλές μεθόδους ευκολίας στο mongotemplate για να σας βοηθήσουμε εύκολα να εκτελέσετε κοινές εργασίες εάν πρέπει να έχετε πρόσβαση στο API του προγράμματος οδήγησης MongoDB απευθείας για να αποκτήσετε πρόσβαση στη λειτουργικότητα που δεν εκτίθεται ρητά από το mongotemplate, μπορείτε να χρησιμοποιήσετε μία από τις διάφορες μεθόδους επανάκλησης για την πρόσβαση στο υποκείμενο API του οδηγού API. Οι επανάκλησες εκτέλεσης θα σας δώσουν μια αναφορά είτε σε ένα com.μούγκος.Συλλογή ή com.μούγκος.Αντικείμενο DB. Ανατρέξτε στις επανάκλησης της εκτέλεσης της ενότητας για περισσότερες πληροφορίες.
Τώρα ας δούμε παραδείγματα για το πώς να εργαστούμε με το mongotemplate στο πλαίσιο του δοχείου ελατηρίου.
5.4. Δημιουργία mongotemplate
Μπορείτε να χρησιμοποιήσετε το Java για να δημιουργήσετε και να καταγράψετε μια παρουσία του mongotemplate όπως φαίνεται παρακάτω.
Παράδειγμα 5.6. Καταχώριση ενός com.μούγκος.Mongo Object και επιτρέποντας την υποστήριξη της εξαίρεσης της άνοιξης
@Διαμόρφωση δημόσιο τάξη Appconfig < δημόσιο @Φασόλι Mongo Mongo () ρίχνει Εξαίρεση < ΕΠΙΣΤΡΟΦΗ νέος Mongo ("Localhost") > δημόσιο @Φασόλι Mongotemplate mongotemplate () ρίχνει Εξαίρεση < ΕΠΙΣΤΡΟΦΗ νέος Mongotemplate (mongo (), "MyDatabase") >>
Υπάρχουν αρκετοί υπερφορτωμένοι κατασκευαστές mongotemplate. Αυτά είναι
- Mongotemplate (Mongo Mongo, String DatabaseName) – Παίρνει το COM.μούγκος.Το αντικείμενο Mongo και το προεπιλεγμένο όνομα βάσης δεδομένων για να λειτουργούν.
- Mongotemplate (Mongo Mongo, String DatabaseName, UserCredentials UserCredentials) – Προσθέτει το όνομα χρήστη και τον κωδικό πρόσβασης για τον έλεγχο ταυτότητας με τη βάση δεδομένων.
- Mongotemplate (MongoDBactory MongoDBactory).μούγκος.Το αντικείμενο Mongo, το όνομα της βάσης δεδομένων και το όνομα χρήστη και ο κωδικός πρόσβασης.
- Mongotemplate (MongoDBactory MongoDBactory, Mongoconverter Mongoconverter) – Προσθέτει ένα mongoconverter για χρήση για χαρτογράφηση.
Μπορείτε επίσης να διαμορφώσετε ένα mongotemplate χρησιμοποιώντας το σχήμα XML του Spring’s.
"Localhost" θύρα ="27017"/>"Mongotemplate" τάξη="Org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongotemplate "> "Mongo"/> "DatabasEname" αξία ="Γεωφικά"/>
Άλλες προαιρετικές ιδιότητες που ίσως θέλετε να ορίσετε κατά τη δημιουργία ενός mongotemplate είναι η προεπιλεγμένη riteresultcheckingpolicy, writeconcern και readpreference .
Ο προτιμώμενος τρόπος αναφοράς των λειτουργιών στο Mongotemplate Instance είναι μέσω της διασύνδεσης Mongooperations .
Πολιτική συγγραφέων
Όταν βρίσκεστε σε εξέλιξη είναι πολύ βολικό είτε να καταγράψετε είτε να ρίξετε μια εξαίρεση εάν το com.μούγκος.Το Writeresult επέστρεψε από οποιαδήποτε λειτουργία MongoDB περιέχει σφάλμα. Είναι πολύ συνηθισμένο να ξεχάσουμε να το κάνουμε αυτό κατά τη διάρκεια της ανάπτυξης και στη συνέχεια να καταλήξουμε σε μια εφαρμογή που μοιάζει να τρέχει με επιτυχία, αλλά στην πραγματικότητα η βάση δεδομένων δεν τροποποιήθηκε σύμφωνα με τις προσδοκίες σας. Ρυθμίστε την ιδιοκτησία του Mongotemplate σε ένα enum με τις ακόλουθες τιμές, καταγραφή, εξαίρεση ή κανένας για να καταγράψετε το σφάλμα, να ρίξετε και να εξαιρέσετε ή να μην κάνετε τίποτα. Η προεπιλογή είναι να χρησιμοποιήσετε μια τιμή συγγραφέα.
Γραπτός
Μπορείτε να ορίσετε το com.μούγκος.Ιδιοκτησία Writeconcern που θα χρησιμοποιήσει το Mongotemplate για εργασίες εγγραφής εάν δεν έχει ακόμη καθοριστεί μέσω του οδηγού σε υψηλότερο επίπεδο όπως το COM.μούγκος.Μαγκό . Εάν η ιδιότητα WriteConcern της Mongotemplate δεν έχει οριστεί, θα προεπιλεγεί σε αυτό που έχει οριστεί στη ρύθμιση DB ή συλλογής του οδηγού MongoDB.
Γραπτώς
Για πιο προηγμένες περιπτώσεις όπου θέλετε να ορίσετε διαφορετικές τιμές writeconcon σε βάση ανά-λειτουργία (για αφαίρεση, ενημέρωση, εισαγωγή και αποθήκευση λειτουργιών), μπορεί να διαμορφωθεί μια διασύνδεση στρατηγικής που ονομάζεται WriteconcerResolver . Δεδομένου ότι το mongotemplate χρησιμοποιείται για να επιμείνει τα pojos, το writeconcernesolver σάς επιτρέπει να δημιουργήσετε μια πολιτική που μπορεί να χαρτογραφήσει μια συγκεκριμένη τάξη pojo σε μια αξία writeconcon. Η διεπαφή WriteConCernResolver εμφανίζεται παρακάτω.
δημόσιο διεπαφή Γραπτώς
Το πέρασμα στο επιχείρημα, MongoAction, είναι αυτό που χρησιμοποιείτε για να προσδιορίσετε την τιμή WriteconCon. Η MongoAction περιέχει το όνομα της συλλογής που γράφεται στο, The Java.λασπώνω.Κατηγορία του POJO, το μετατρεπόμενο DBObject, καθώς και η λειτουργία ως απαρίθμηση (MongoActionOperation: Remove, Update, Insert, INSERT_LIST, SAVE) και μερικά άλλα κομμάτια των πληροφοριών συμφραζομένων. Για παράδειγμα,
Η ιδιωτική τάξη myappwriteConcernResolver εφαρμόζει το writeconcernesolver < public WriteConcern resolve(MongoAction action) < if (action.getEntityClass().getSimpleName().contains("Audit")) < return WriteConcern.NONE; >αλλιώς αν (δράση.getentityClass ().getSimplename ().Περιέχει ("μεταδεδομένα"))) < return WriteConcern.JOURNAL_SAFE; >δράση επιστροφής.getDefaultWriteConCern (); >> 5.5 Εξοικονόμηση, Ενημέρωση και Κατάργηση εγγράφων
Το Mongotemplate παρέχει έναν απλό τρόπο για να αποθηκεύσετε, να ενημερώσετε και να διαγράψετε τα αντικείμενα τομέα σας και να χαρτογραφήσετε αυτά τα αντικείμενα σε έγγραφα που είναι αποθηκευμένα στο MongoDB.
Δίνεται μια απλή τάξη όπως άτομο
δημόσιο τάξη Πρόσωπο < ιδιωτικός Αναγνωριστικό συμβολοσειράς ιδιωτικός Όνομα συμβολοσειράς; ιδιωτικός int ηλικία; δημόσιο Πρόσωπο (όνομα συμβολοσειράς, int ηλικία) < Αυτό.Όνομα = όνομα; Αυτό.Ηλικία = ηλικία. > δημόσιο String getId () < ΕΠΙΣΤΡΟΦΗ ταυτότητα; > δημόσιο String getName () < ΕΠΙΣΤΡΟΦΗ όνομα; > δημόσιο int getage () < ΕΠΙΣΤΡΟΦΗ ηλικία; > @Καταπατώ δημόσιο String toString () < ΕΠΙΣΤΡΟΦΗ "Πρόσωπο [id hl-string"> ", όνομα hl-string"> ", ηλικία hl-string"> "]"; >>
Μπορείτε να αποθηκεύσετε, να ενημερώσετε και να διαγράψετε το αντικείμενο όπως φαίνεται παρακάτω.
Οι Mongooperations είναι η διεπαφή που υλοποιεί το mongotemplate.
πακέτο org.άνοιξη.παράδειγμα; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Κριτήρια.που; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Εκσυγχρονίζω.εκσυγχρονίζω; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Ερώτηση.ερώτηση; εισαγωγή Ιάβα.χρησιμοποιώ.Λίστα; εισαγωγή org.απάχης.κοινά.ξύλευση.Κούτσουρο; εισαγωγή org.απάχης.κοινά.ξύλευση.Logactory; εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongooperations; εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.Mongotemplate; εισαγωγή org.ελατήριο.δεδομένα.μούγκος.πυρήνας.SimpleMongodBactory; εισαγωγή com.μούγκος.Mongo; δημόσιο τάξη Mongoapp < ιδιωτικός στατικός τελικός Log Log = logFactory.getLog (mongoapp.τάξη) δημόσιο στατικός κενός Main (String [] args) ρίχνει Εξαίρεση < MongoOperations mongoOps = νέος Mongotemplate (νέος Simplemongodbactory (νέος Mongo (), "βάση δεδομένων")) Άτομο p = νέος Πρόσωπο("Τζο", 34) // Το εισόδημα χρησιμοποιείται για την αρχική αποθήκευση του αντικειμένου στη βάση δεδομένων. μούγκο.Εισαγωγή (p); κούτσουρο.πληροφορίες ("Εισάγετε: " + Π); // Εύρημα P = Mongoops.findbyid (σ.getId (), άτομο.τάξη) κούτσουρο.πληροφορίες ("Βρέθηκαν: " + Π); // Ενημέρωση μούγκο.updateFirst (ερώτημα (πού ("όνομα"·.είναι("Τζο")), ενημέρωση ("ηλικία", 35), Άτομο.τάξη) P = Mongoops.findOne (ερώτημα (πού (("όνομα"·.είναι("Τζο")), Άτομο.τάξη) κούτσουρο.πληροφορίες ("ΕΠΙΚΑΙΡΟΠΟΙΗΜΕΝΟ: " + Π); // Διαγραφή μούγκο.αφαιρέστε (p); // Ελέγξτε ότι η διαγραφή λειτούργησε Λίστα ατόμων = mongoops.findall (άτομο.τάξη) κούτσουρο.πληροφορίες ("Αριθμός ατόμων =:" + Ανθρωποι.Μέγεθος()); μούγκο.DropCollection (άτομο.τάξη) >>
Αυτό θα παράγει την ακόλουθη έξοδο καταγραφής (συμπεριλαμβανομένων μηνυμάτων εντοπισμού σφαλμάτων από το ίδιο το mongotemplate)
Εντοπισμός σφαλμάτων.MongopersistentityIndExcreator: 80 - Ανάλυση κλάσης κλάσης org.άνοιξη.παράδειγμα.Πρόσωπο για πληροφορίες ευρετηρίου. Εντοπισμός σφαλμάτων.δεδομένα.μούγκος.πυρήνας.MongoTemplate: 632 - Εισαγωγή DBObject Περιέχει πεδία: [_class, ηλικία, όνομα] στη συλλογή: Πληροφορίες ατόμου org.άνοιξη.παράδειγμα.MongoApp: 30 - Εισαγωγή: Πρόσωπο [ID = 4DDC6E784CE5B1EBA3CEAF5C, NAME = JOE, AGE = 34] Εργασία εντοπισμού σφαλμάτων.δεδομένα.μούγκος.πυρήνας.Mongotemplate: 1246 - FindOne χρησιμοποιώντας το ερώτημα: < "_id" : < "$oid" : "4ddc6e784ce5b1eba3ceaf5c">> στο DB.Συλλογή: βάση δεδομένων.Πληροφορίες ατόμου org.άνοιξη.παράδειγμα.MongoApp: 34 - Βρέθηκε: Πρόσωπο [ID = 4DDC6E784CE5B1EBA3CEAF5C, NAME = JOE, AGE = 34] Εργασία εντοπισμού σφαλμάτων.δεδομένα.μούγκος.πυρήνας.MongoTemplate: 778 - Calling Update Χρησιμοποιώντας το ερώτημα: < "name" : "Joe">και ενημέρωση: < "$set" : < "age" : 35>> Στη συλλογή: Εργασία εντοπισμού σφαλμάτων ατόμου.δεδομένα.μούγκος.πυρήνας.Mongotemplate: 1246 - FindOne χρησιμοποιώντας το ερώτημα: < "name" : "Joe">στο DB.Συλλογή: βάση δεδομένων.Πληροφορίες ατόμου org.άνοιξη.παράδειγμα.MongoApp: 39 - Ενημερώθηκε: Πρόσωπο [ID = 4DDC6E784CE5B1EBA3CEAF5C, NAME = JOE, AGE = 35] Εργασία εντοπισμού σφαλμάτων.δεδομένα.μούγκος.πυρήνας.Mongotemplate: 823 - Αφαιρέστε το ερώτημα: < "id" : "4ddc6e784ce5b1eba3ceaf5c">Στη συλλογή: Πληροφορίες ατόμου org.άνοιξη.παράδειγμα.MongoApp: 46 - Αριθμός ατόμων =: 0 Εργασία εντοπισμού σφαλμάτων.δεδομένα.μούγκος.πυρήνας.Mongotemplate: 376 - Συλλογή που έχει πέσει [βάση δεδομένων.πρόσωπο]
Υπήρξε σιωπηρή μετατροπή χρησιμοποιώντας τον mongoconverter μεταξύ μιας συμβολοσειράς και του αντικειμένου όπως αποθηκεύτηκε στη βάση δεδομένων και αναγνωρίζοντας μια σύμβαση του ονόματος “ID” ιδιοκτησίας.
Αυτό το παράδειγμα προορίζεται να δείξει τη χρήση της αποθήκευσης, της ενημέρωσης και της κατάργησης των λειτουργιών στο mongotemplate και όχι για να δείξει πολύπλοκη λειτουργικότητα χαρτογράφησης
Το ερώτημα stynax που χρησιμοποιείται στο παράδειγμα εξηγείται λεπτομερέστερα στην ενότητα Εξετάζοντας έγγραφα.
5.5.1 Πώς αντιμετωπίζεται το πεδίο ‘_id’ στο στρώμα χαρτογράφησης
Το MongoDB απαιτεί να έχετε ένα πεδίο ‘_id’ για όλα τα έγγραφα. Εάν δεν παρέχετε ένα, το πρόγραμμα οδήγησης θα αντιστοιχίσει ένα objectId με μια παραγόμενη τιμή. Όταν χρησιμοποιείτε το MongomappingConverter, υπάρχουν ορισμένοι κανόνες που διέπουν τον τρόπο με τον οποίο τα ακίνητα από την κλάση Java χαρτογραφούνται σε αυτό το πεδίο ‘_id’.
Τα παρακάτω περιγράφουν ποια ιδιότητα θα χαρτογραφηθεί στο πεδίο εγγράφων «_id»:
- Ένα ακίνητο ή ένα πεδίο σχολιασμένο με @ID (org.ελατήριο.δεδομένα.σχόλιο.Id) θα χαρτογραφηθεί στο πεδίο ‘_id’.
- Ένα ακίνητο ή ένα πεδίο χωρίς σχολιασμό, αλλά ονομάζεται ID θα χαρτογραφηθεί στο πεδίο ‘_id’.
Τα παρακάτω περιγράφουν ποια μετατροπή τύπου, εάν υπάρχει, θα γίνει στο ακίνητο που αντιστοιχεί στο πεδίο εγγράφων _ID όταν χρησιμοποιείτε το MappingMongoconverter, η προεπιλογή για mongotemplate .
- Μια ιδιότητα ή πεδίο ID που δηλώνεται ως συμβολοσειρά στην κλάση Java θα μετατραπεί και θα αποθηκευτεί ως αντικειμενικό, εάν είναι δυνατόν, χρησιμοποιώντας έναν μετατροπέα ελατηρίου . Οι έγκυροι κανόνες μετατροπής μεταβιβάζονται στον οδηγό MongoDB Java. Εάν δεν μπορεί να μετατραπεί σε ένα αντικείμενο, τότε η τιμή θα αποθηκευτεί ως συμβολοσειρά στη βάση δεδομένων.
- Μια ιδιότητα ή πεδίο ID που δηλώνεται ως biginteger στην κλάση Java θα μετατραπεί και θα αποθηκευτεί ως αντικειμενικό χρησιμοποιώντας έναν μετατροπέα ελατηρίου .
Εάν δεν υπάρχει κανένα πεδίο ή ιδιότητα που ορίζεται παραπάνω στην κλάση Java, τότε θα δημιουργηθεί ένα σιωπηλό αρχείο ‘_id’, αλλά δεν χαρτογραφείται σε μια ιδιότητα ή πεδίο της κλάσης Java.
Κατά την αναζήτηση και την ενημέρωση του mongotemplate θα χρησιμοποιήσει τον μετατροπέα για να χειριστεί τις μετατροπές του ερωτήματος και την ενημέρωση αντικειμένων που αντιστοιχούν στους παραπάνω κανόνες για την αποθήκευση εγγράφων, ώστε τα ονόματα και οι τύποι πεδίων που χρησιμοποιούνται στα ερωτήματά σας.
5.5.2 χαρτογράφηση τύπου
Καθώς οι συλλογές MongoDB μπορούν να περιέχουν έγγραφα που αντιπροσωπεύουν περιπτώσεις ποικίλων τύπων. Ένα καλό παράδειγμα εδώ είναι αν αποθηκεύετε μια ιεραρχία τάξεων ή απλά έχετε μια τάξη με ιδιότητα αντικειμένου τύπου . Στην τελευταία περίπτωση οι τιμές που διατηρούνται μέσα σε αυτό το ακίνητο πρέπει να διαβαστούν σωστά κατά την ανάκτηση του αντικειμένου. Έτσι χρειαζόμαστε έναν μηχανισμό για την αποθήκευση πληροφοριών τύπου παράλληλα με το πραγματικό έγγραφο.
Για να επιτευχθεί αυτό το MappingMongoconverter χρησιμοποιεί μια αφαίρεση mongotypemapper με defaultMongotypemapper καθώς είναι η κύρια εφαρμογή. Η προεπιλεγμένη συμπεριφορά είναι η αποθήκευση του πλήρως ειδικευμένου ονόματος κατηγορίας κάτω από το _class μέσα στο έγγραφο για το έγγραφο ανώτατου επιπέδου, καθώς και για κάθε τιμή, εάν είναι πολύπλοκος τύπος και υποτύπος του τύπου ακινήτου που δηλώνεται.
Παράδειγμα 5.7. Χαρτογράφηση τύπου
δημόσιο τάξη Δείγμα < Contact value; >δημόσιο αφηρημένη τάξη Επικοινωνία < … >δημόσιο τάξη Πρόσωπο εκτείνω Επικοινωνία < … >Δείγμα δείγματος = νέος Δείγμα(); δείγμα.αξία = νέος Πρόσωπο(); mongotemplate.αποθήκευση (δείγμα); < "_τάξη" : "Com.ακμή.Δείγμα", "αξία" : < "_τάξη" : "Com.ακμή.Πρόσωπο" >>
Όπως μπορείτε να δείτε, αποθηκεύουμε τις πληροφορίες τύπου για την πραγματική root class persistet καθώς και για τον ένθετο τύπο, καθώς είναι πολύπλοκο και ένας υποτύπος επαφής . Έτσι, αν χρησιμοποιείτε τώρα mongotemplate.findAll (αντικείμενο.τάξη, “δείγμα”) είμαστε σε θέση να διαπιστώσουμε ότι το αποθηκευμένο έγγραφο είναι δείγμα στιγμιότυπου. Είμαστε επίσης σε θέση να διαπιστώσουμε ότι η ιδιότητα Value θα είναι ένα άτομο στην πραγματικότητα.
Προσαρμογή χαρτογράφησης τύπου
Σε περίπτωση που θέλετε να αποφύγετε να γράψετε ολόκληρο το όνομα της κλάσης Java ως πληροφορίες τύπου, αλλά θέλετε να χρησιμοποιήσετε κάποιο κλειδί, μπορείτε να χρησιμοποιήσετε τον σχολιασμό @typealias στην κατηγορία οντότητας που επιμένει. Εάν πρέπει να προσαρμόσετε τη χαρτογράφηση ακόμη περισσότερο, ρίξτε μια ματιά στη διεπαφή TypeInformationMapper. Μια εμφάνιση αυτής της διεπαφής μπορεί να ρυθμιστεί στο DefaultMongotypemapper το οποίο μπορεί να διαμορφωθεί με τη σειρά του MappingMongoconverter .
5.5.3 Μέθοδοι εξοικονόμησης και εισαγωγής εγγράφων
Υπάρχουν αρκετές βολικές μεθόδους στο Mongotemplate για την αποθήκευση και την εισαγωγή των αντικειμένων σας. Για να έχετε πιο λεπτό έλεγχο της διαδικασίας μετατροπής, μπορείτε να καταχωρήσετε μετατροπείς ελατηρίου με τον MappingMongoConverter, για παράδειγμα μετατροπέα και μετατροπέα .
Η διαφορά μεταξύ των λειτουργιών εισόδου και αποθήκευσης είναι ότι μια λειτουργία αποθήκευσης θα εκτελέσει ένα ένθετο εάν το αντικείμενο δεν υπάρχει ήδη.
Η απλή περίπτωση χρήσης της λειτουργίας αποθήκευσης είναι να αποθηκεύσετε ένα POJO. Σε αυτή την περίπτωση το όνομα της συλλογής θα καθοριστεί από το όνομα (δεν είναι πλήρως προβληματικό) της τάξης. Μπορείτε επίσης να καλέσετε τη λειτουργία αποθήκευσης με συγκεκριμένο όνομα συλλογής. Η συλλογή για την αποθήκευση του αντικειμένου μπορεί να αντικατασταθεί χρησιμοποιώντας μεταδεδομένα χαρτογράφησης.
Κατά την εισαγωγή ή την αποθήκευση, εάν η ιδιότητα ID δεν έχει οριστεί, η υπόθεση είναι ότι η αξία της θα αυτοπενειστεί από τη βάση δεδομένων. Ως εκ τούτου, για την αυτογενοποίηση ενός αντικειμένου για να πετύχει ο τύπος της ιδιότητας/πεδίου ID στην τάξη σας πρέπει να είναι είτε συμβολοσειρά, αντικειμενικό ή biginteger .
Ακολουθεί ένα βασικό παράδειγμα χρήσης της λειτουργίας αποθήκευσης και ανάκτηση του περιεχομένου της.
Παράδειγμα 5.8. Εισαγωγή και ανάκτηση εγγράφων χρησιμοποιώντας το mongotemplate
εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Κριτήρια.που; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Κριτήρια.ερώτηση; … Πρόσωπο P = νέος Πρόσωπο("Βαρίδι", 33) mongotemplate.Εισαγωγή (p); Άτομο qp = mongotemplate.findOne (ερώτημα (πού (("ηλικία"·.είναι(33)), Άτομο.τάξη)
Οι διαθέσιμες λειτουργίες εισαγωγής/αποθήκευσης σας παρατίθενται παρακάτω.
- κενός αποθηκεύσετε (Object ObjectTosave) Αποθηκεύστε το αντικείμενο στην προεπιλεγμένη συλλογή.
- κενός αποθηκεύσετε (Object ObjectTosave, Συλλογή String) Αποθηκεύστε το αντικείμενο στην καθορισμένη συλλογή.
Ένα παρόμοιο σύνολο λειτουργιών εισαγωγής παρατίθεται παρακάτω
- κενός εισάγετε (Object ObjectTosave) Τοποθετήστε το αντικείμενο στην προεπιλεγμένη συλλογή.
- κενός εισάγετε (Object ObjectTosave, Συλλογή String) Εισαγάγετε το αντικείμενο στη συγκεκριμένη συλλογή.
Σε ποια συλλογή θα αποθηκευτούν τα έγγραφά μου?
Υπάρχουν δύο τρόποι διαχείρισης του ονόματος συλλογής που χρησιμοποιείται για τη λειτουργία των εγγράφων. Το προεπιλεγμένο όνομα συλλογής που χρησιμοποιείται είναι ότι το όνομα της κλάσης άλλαξε για να ξεκινήσει με ένα γράμμα κάτω. Έτσι ένα com.δοκιμή.Η τάξη ατόμου θα αποθηκευτεί στη συλλογή “Πρόσωπο”. Μπορείτε να το προσαρμόσετε παρέχοντας ένα διαφορετικό όνομα συλλογής χρησιμοποιώντας τον σχολιασμό @document. Μπορείτε επίσης να παρακάμψετε το όνομα της συλλογής παρέχοντας το δικό σας όνομα συλλογής ως την τελευταία παράμετρο για τις επιλεγμένες κλήσεις μεθόδου Mongotemplate.
Εισαγωγή ή αποθήκευση μεμονωμένων αντικειμένων
Ο οδηγός MongoDB υποστηρίζει την εισαγωγή μιας συλλογής εγγράφων σε μία επιχείρηση. Οι μέθοδοι στη διασύνδεση Mongooperations που υποστηρίζουν αυτή τη λειτουργικότητα παρατίθενται παρακάτω
- εισάγετε Εισαγάγετε ένα αντικείμενο. Εάν υπάρχει ένα υπάρχον έγγραφο με το ίδιο αναγνωριστικό, τότε δημιουργείται σφάλμα.
- ένθετο Παίρνει μια συλλογή αντικειμένων ως την πρώτη παράμετρο. Αυτή η μέθοδος είναι κάθε αντικείμενο και την εισάγει στην κατάλληλη συλλογή με βάση τους κανόνες που καθορίζονται παραπάνω.
- αποθηκεύσετε Αποθηκεύστε το αντικείμενο ovewriting οποιοδήποτε αντικείμενο μπορεί να υπάρχει με το ίδιο αναγνωριστικό.
Εισαγωγή πολλών αντικειμένων σε μια παρτίδα
Ο οδηγός MongoDB υποστηρίζει την εισαγωγή μιας συλλογής εγγράφων σε μία επιχείρηση. Οι μέθοδοι στη διασύνδεση Mongooperations που υποστηρίζουν αυτή τη λειτουργικότητα παρατίθενται παρακάτω
- εισάγετε Μέθοδοι που λαμβάνουν μια συλλογή ως το πρώτο επιχείρημα. Αυτό εισάγει μια λίστα αντικειμένων σε μία μόνο παρτίδα εγγραφή στη βάση δεδομένων.
5.5.4 Ενημέρωση εγγράφων σε μια συλλογή
Για ενημερώσεις μπορούμε να επιλέξουμε να ενημερώσουμε το πρώτο έγγραφο που βρέθηκε χρησιμοποιώντας τη μέθοδο της Mongooperation’s UpdateFirst ή μπορούμε να ενημερώσουμε όλα τα έγγραφα που βρέθηκαν να ταιριάζουν με το ερώτημα χρησιμοποιώντας τη μέθοδο UpdateMulti . Ακολουθεί ένα παράδειγμα ενημέρωσης όλων των λογαριασμών ταμιευτηρίου όπου προσθέτουμε μια φορά 50 $.00 μπόνους στο υπόλοιπο χρησιμοποιώντας τον χειριστή $ inc.
Παράδειγμα 5.9. Ενημέρωση εγγράφων χρησιμοποιώντας το mongotemplate
εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Κριτήρια.που; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Ερώτηση; εισαγωγή στατικός org.ελατήριο.δεδομένα.μούγκος.πυρήνας.ερώτηση.Εκσυγχρονίζω; . Writeresult wr = mongotemplate.updateMulti (νέος Ερώτημα (πού ("Λογαριασμοί.Τύπος Λογαριασμού"·.είναι (λογαριασμός.Τύπος.ΟΙΚΟΝΟΜΙΕΣ)), νέος Εκσυγχρονίζω().Inc ("Λογαριασμοί.$.ισορροπία", 50.00), Λογαριασμός.τάξη)
Εκτός από το ερώτημα που συζητήθηκε παραπάνω, παρέχουμε τον ορισμό ενημέρωσης χρησιμοποιώντας ένα αντικείμενο ενημέρωσης. Η κλάση ενημέρωσης έχει μεθόδους που ταιριάζουν με τους τροποποιητές ενημέρωσης που διατίθενται για το MongoDB.
Όπως μπορείτε να δείτε οι περισσότερες μέθοδοι επιστρέφουν το αντικείμενο ενημέρωσης για να παρέχουν ένα άπταιστο στυλ για το API.
Μέθοδοι για την εκτέλεση ενημερώσεων για έγγραφα
- ενημέρωση First Ενημερώνει το πρώτο έγγραφο που ταιριάζει με τα κριτήρια του εγγράφου ερωτήματος με το παρεχόμενο ενημερωμένο έγγραφο.
- updatemulti Ενημερώνει όλα τα αντικείμενα που ταιριάζουν με τα κριτήρια εγγράφων ερωτήματος με το παρεχόμενο ενημερωμένο έγγραφο.
Ξεκινώντας με το MongoDB και το Java – CRUD Operations Tutorial
Η καταγραφή του προγράμματος οδήγησης MongoDB Java είναι τώρα ενεργοποιημένη μέσω του δημοφιλούς API SLF4J, οπότε πρόσθεσα logback στο POM.XML και ένα αρχείο αρχείων διαμόρφωσης.XML .
Εισαγωγή

Σε αυτήν την πρώτη θέση στο blog της σειράς Java Quick Start, θα σας δείξω πώς να ρυθμίσετε το έργο σας Java με το Maven και να εκτελέσετε μια εντολή mongoDB στο Java. Στη συνέχεια, θα διερευνήσουμε τις πιο συνηθισμένες λειτουργίες – όπως η δημιουργία, η ανάγνωση, η ενημέρωση και η διαγραφή – χρησιμοποιώντας το πρόγραμμα οδήγησης MongoDB Java . Θα σας δείξω επίσης μερικές από τις πιο ισχυρές επιλογές και δυνατότητες που διατίθενται ως μέρος του οδηγού MongoDB Java για κάθε μία από αυτές τις λειτουργίες, δίνοντάς σας μια πραγματικά μεγάλη θεμελίωση της γνώσης για να αξιοποιήσετε καθώς περνάμε από τη σειρά.
Στις μελλοντικές αναρτήσεις ιστολογίου, θα προχωρήσουμε και θα εργαστούμε μέσω:
Συναλλαγές οξέος πολλαπλών εγγράφων.
Ο οδηγός MongoDB Java αντιδραστικών ροών.
Γιατί ο Mongodb και η Java?
Η Java είναι η πιο δημοφιλής γλώσσα στη βιομηχανία πληροφορικής κατά την ημερομηνία αυτής της ανάρτησης ιστολογίου και οι προγραμματιστές ψήφισαν το MongoDB ως πιο επιθυμητή βάση δεδομένων τους τέσσερα χρόνια στη σειρά . Σε αυτή τη σειρά αναρτήσεων ιστολογίου, θα δείξω πόσο ισχυρά αυτά τα δύο μεγάλα κομμάτια τεχνολογίας είναι όταν συνδυάζονται και πώς μπορείτε να έχετε πρόσβαση σε αυτήν την εξουσία.
Προϋποθέσεις
Για να ακολουθήσετε, μπορείτε να χρησιμοποιήσετε οποιοδήποτε περιβάλλον που σας αρέσει και το ολοκληρωμένο περιβάλλον ανάπτυξης της επιλογής σας. Θα χρησιμοποιήσω το Maven 3.6.2 και το Java OpenJDK 13, αλλά όλος ο κώδικας θα είναι συμβατός με τις εκδόσεις Java 8 έως 13, οπότε μη διστάσετε να χρησιμοποιήσετε το JDK της επιλογής σας και να ενημερώσετε ανάλογα την έκδοση Java στο POM.αρχείο XML που πρόκειται να ρυθμίσουμε.
Για το σύμπλεγμα MongoDB, θα χρησιμοποιήσουμε ένα M0 Free Tier MongoDB cluster από το MongoDB Atlas . Εάν δεν έχετε ήδη, δείτε το ξεκίνησέ μου με μια ανάρτηση ιστολογίου M0 Cluster.
Πάρτε το δωρεάν σύμπλεγμα M0 στο MongoDB Atlas σήμερα. Είναι δωρεάν για πάντα και θα μπορείτε να το χρησιμοποιήσετε για να συνεργαστείτε με τα παραδείγματα σε αυτήν τη σειρά ιστολογίων.
Ας πηδήξουμε και να ρίξουμε μια ματιά στο πόσο καλά συνεργάζονται οι Java και MongoDB.
Να εγκατασταθεί
Αρχικά, θα πρέπει να δημιουργήσουμε ένα νέο έργο Maven. Έχετε δύο επιλογές σε αυτό το σημείο. Μπορείτε είτε να κλωνοποιήσετε αυτό το αποθετήριο Git Series ή να δημιουργήσετε και να ρυθμίσετε το έργο Maven.
Χρήση του αποθετηρίου GIT
Εάν επιλέξετε να χρησιμοποιήσετε το git, θα πάρετε αμέσως όλο τον κωδικό. Σας προτείνω ακόμα να διαβάσετε τη χειροκίνητη ρύθμιση.
Μπορείτε να κλωνοποιήσετε το αποθετήριο αν θέλετε με την ακόλουθη εντολή.
Ή μπορείτε να κατεβάσετε το αποθετήριο ως αρχείο zip .
Ρύθμιση χειροκίνητα
Μπορείτε είτε να χρησιμοποιήσετε το αγαπημένο σας IDE για να δημιουργήσετε ένα νέο έργο Maven για εσάς ή μπορείτε να δημιουργήσετε το έργο Maven με μη αυτόματο τρόπο. Είτε έτσι είτε αλλιώς, θα πρέπει να πάρετε την ακόλουθη αρχιτεκτονική φακέλων:
Το pom.Το αρχείο XML πρέπει να περιέχει τον ακόλουθο κωδικό:
Για να επαληθεύσετε ότι όλα λειτουργούν σωστά, θα πρέπει να είστε σε θέση να δημιουργήσετε και να εκτελέσετε ένα απλό “Hello MongoDB!”Πρόγραμμα. Στο SRC/MAIN/JAVA/COM/MONGODB/QUICKSTART, δημιουργήστε το HelloMongodB.Αρχείο Java:
Στη συνέχεια, συντάξτε και εκτελέστε το με το IDE σας ή χρησιμοποιήστε τη γραμμή εντολών στον ριζικό κατάλογο (όπου είναι ο φάκελος SRC):
Το αποτέλεσμα πρέπει να μοιάζει με αυτό:
Σημείωση: Εάν δείτε κάποιες προειδοποιήσεις σχετικά με μια παράνομη αντανακλαστική πρόσβαση από το Guice.Java, είναι ασφαλές να τα αγνοήσουμε. Το Guice χρησιμοποιείται από τον Maven και χρειάζεται μια ενημέρωση. Μπορείτε να διαβάσετε περισσότερα για αυτό σε αυτό το ζήτημα GitHub . Αυτές οι προειδοποιήσεις θα εξαφανιστούν σε μια μελλοντική απελευθέρωση του Guice και του Maven.
Σύνδεση με Java
Τώρα που λειτουργεί το έργο μας Maven και επιλύσαμε τις εξαρτήσεις μας, μπορούμε να αρχίσουμε να χρησιμοποιούμε το MongoDB Atlas με Java.
Εάν έχετε εισαγάγει το δείγμα δεδομένων όπως προτείνεται στη δημοσίευση ιστολογίου γρήγορης εκκίνησης Atlas, τότε με τον κωδικό Java που πρόκειται να δημιουργήσουμε, θα μπορείτε να δείτε μια λίστα με τις βάσεις δεδομένων στο σύνολο δεδομένων δείγματος.
Το πρώτο βήμα είναι να δημιουργήσετε ένα mongoclient περνώντας μια συμβολοσειρά σύνδεσης MongoDB Atlas στα Mongoclients.δημιουργία () στατική μέθοδος. Αυτό θα δημιουργήσει μια σύνδεση με το MongoDB Atlas χρησιμοποιώντας τη συμβολοσειρά σύνδεσης. Στη συνέχεια, μπορούμε να ανακτήσουμε τη λίστα των βάσεων δεδομένων σε αυτό το σύμπλεγμα και να τις εκτυπώσουμε για να δοκιμάσουμε τη σύνδεση με το MongoDB.
Στο SRC/MAIN/JAVA/COM/MONGODB, δημιουργήστε τη σύνδεση.Αρχείο Java:
Όπως μπορείτε να δείτε, η συμβολοσειρά σύνδεσης MongoDB ανακτάται από το Ιδιότητες συστήματος , Πρέπει λοιπόν να το ρυθμίσουμε. Μόλις ανακτήσετε τη συμβολοσειρά σύνδεσης MongoDB Atlas, μπορείτε να προσθέσετε το MongoDB.Ιδιότητα συστήματος URI στο IDE σας. Εδώ είναι η διαμόρφωσή μου με το Intellij για παράδειγμα.
Ή αν προτιμάτε να χρησιμοποιήσετε το Maven στη γραμμή εντολών, εδώ είναι η ισοδύναμη γραμμή εντολών που μπορείτε να εκτελέσετε στον ριζικό κατάλογο:
Σημείωση: Μην ξεχνάτε τα διπλά αποσπάσματα γύρω από το URI MongoDB για να αποφύγετε εκπλήξεις από το κέλυφος σας.
Η τυπική έξοδος πρέπει να μοιάζει με αυτό:
Εισαγάγετε εργασίες
Να εγκατασταθεί
Στο τμήμα σύνδεσης με Java, δημιουργήσαμε τις τάξεις HelloMongodb και Connection . Τώρα θα δουλέψουμε στην τάξη Δημιουργία.
Εάν δεν δημιουργήσατε το δωρεάν σύμπλεγμα σας στο MongoDB Atlas, τώρα είναι πολύ καλή στιγμή για να το κάνετε αυτό. Λάβετε τις οδηγίες για τη δημιουργία του συμπλέγματος σας .
Έλεγχος του μοντέλου συλλογής και δεδομένων
Στο δείγμα δεδομένων δεδομένων, μπορείτε να βρείτε το δείγμα της βάσης δεδομένων, το οποίο περιέχει βαθμούς συλλογής . Κάθε έγγραφο σε αυτή τη συλλογή αντιπροσωπεύει βαθμούς φοιτητή για μια συγκεκριμένη τάξη.
Εδώ είναι η αναπαράσταση ενός εγγράφου στο κέλυφος Mongo .
Και εδώ είναι η εκτεταμένη εκπροσώπηση του ίδιου μαθητή. Μπορείτε να το ανακτήσετε στο MongoDB Compass, το δωρεάν εργαλείο GUI, αν θέλετε.
Το Extended JSON είναι η ανθρώπινη αναγνώσιμη έκδοση ενός εγγράφου BSON χωρίς απώλεια πληροφοριών τύπου. Μπορείτε να διαβάσετε περισσότερα για τον οδηγό Java και το Bson στην τεκμηρίωση του οδηγού MongoDB Java .
Όπως μπορείτε να δείτε, το MongoDB αποθηκεύει έγγραφα BSON και για κάθε ζεύγος βασικών τιμών, το BSON περιέχει το κλειδί και την τιμή μαζί με τον τύπο του. Αυτός είναι ο τρόπος με τον οποίο ο MongoDB γνωρίζει ότι το class_id είναι στην πραγματικότητα διπλός και όχι ακέραιος, ο οποίος δεν είναι σαφής στην αναπαράσταση του κελύφους Mongo αυτού του εγγράφου.
Έχουμε 10.000 μαθητές (Student_ID από 0 έως 9999) ήδη σε αυτή τη συλλογή και κάθε ένας από αυτούς πήρε 10 διαφορετικές τάξεις, οι οποίες προσθέτουν μέχρι και 100.000 έγγραφα σε αυτή τη συλλογή. Ας πούμε ότι ένας νέος φοιτητής (Student_id 10.000) μόλις έφτασε σε αυτό το πανεπιστήμιο και έλαβε μια δέσμη (τυχαίων) βαθμών στην πρώτη του τάξη. Ας εισαγάγουμε αυτό το νέο έγγραφο σπουδαστών χρησιμοποιώντας Java και το πρόγραμμα οδήγησης Java MongoDB.
Σε αυτό το πανεπιστήμιο, το class_id ποικίλλει από 0 έως 500, οπότε μπορώ να χρησιμοποιήσω οποιαδήποτε τυχαία τιμή μεταξύ 0 και 500.
Ενσωμάτωση MongoDB Java: 12 Εύκολα βήματα
Ξεκινήστε με τις λειτουργίες MongoDB CRUD στο Python: 3 Easy Steps
ΣΥΝΔΕΣΗ SUBSTRING MONGODB (SUBSTR): Απλοποιημένη 101
MongoDB JavaScript (NodeJS) Σύνδεση απλοποιημένο 101
Πίνακας περιεχομένων
Αυτή η σελίδα παρέχει μια ολοκληρωμένη επισκόπηση του τρόπου με τον οποίο μπορείτε να ξεκινήσετε με το MongoDB και το Java. Σε αυτήν την ανάρτηση, εσείς’Θα μάθω πώς να συνδέσετε την εφαρμογή Java σε μια παρουσία MongoDB. Στη συνέχεια, θα εκτελέσετε μερικές κοινές λειτουργίες MongoDB χρησιμοποιώντας τον οδηγό MongoDB Java. Διαβάστε μαζί για να ρυθμίσετε το δικό σας Mongodb Java Ενσωμάτωση σήμερα!
Πίνακας περιεχομένων
Τι είναι το MongoDB?
Το MongoDB είναι μια βάση δεδομένων εγγράφων ανοιχτού κώδικα που έχει ένα ευρύ φάσμα εφαρμογών. Μπορεί να χρησιμοποιηθεί ως αναλυτική βάση δεδομένων, βάση δεδομένων συναλλαγών, δείκτης αναζήτησης ή αποθήκη δεδομένων, μεταξύ άλλων περιπτώσεων χρήσης. Το MongoDB διαθέτει ένα ευέλικτο σχήμα που παρέχει υποστήριξη για πλήρη ευρετηρίαση, αναπαραγωγή, αποθήκευση τύπου JSON και μη δομημένη γλώσσα ερωτήματος.
Οι βασικές έννοιες MongoDB είναι:
- Ταυτότητα: Ένα αναγνωριστικό είναι ένα όνομα πεδίου που χρησιμοποιείται για να αντιπροσωπεύει ένα μοναδικό αντικείμενο στο MongoDB. Μπορεί να δημιουργηθεί ρητά από τον χρήστη ή σιωπηρά από τον διακομιστή MongoDB.
- Συλλογή: Είναι ένας κάδος που αποθηκεύει μια ομάδα εγγράφων MongoDB. Εμπίπτει σε μια βάση δεδομένων στην ιεραρχία.
- Βάση δεδομένων: Αυτό είναι το ανώτατο επίπεδο της οργάνωσης δεδομένων σε μια παρουσία MongoDB. Η βάση δεδομένων αποθηκεύει συλλογές και μια παρουσία MongoDB μπορεί να περιέχει πολλές βάσεις δεδομένων.
- Εγγραφο: Τα αρχεία που αποθηκεύονται σε μια συλλογή MongoDB ονομάζονται έγγραφα. Περιέχουν κλειδιά και αξίες. Οι τιμές μπορούν να είναι χορδές, ακέραιοι, booleans, ημερομηνίες καθώς και άλλα ενσωματωμένα έγγραφα.
- Πεδίο: Αυτό αναφέρεται στο ζεύγος κλειδιών/αξίας σε ένα έγγραφο.
Επίλυση προβλημάτων αναπαραγωγής δεδομένων με αξιόπιστους, μη κώδικα, αυτοματοποιημένους αγωγούς με 150+ συνδετήρες.


Βασικά χαρακτηριστικά του MongoDB
Το MongoDB διαθέτει αρκετές εξαιρετικές δυνατότητες που το καθιστούν ευρέως χρησιμοποιήσιμο και δημοφιλές. Ας ρίξουμε μια ματιά στα κορυφαία τεχνικά χαρακτηριστικά του MongoDB:
Υποστηρίζει ερωτήματα adhoc
Ένα από τα μεγαλύτερα οφέλη που κάνουν το MongoDB να ξεχωρίζει είναι η απόδοσή του όταν χειρίζονται ad hoc ερωτήματα σε δεδομένα που συνήθως ενημερώνονται σε πραγματικό χρόνο. Το MongoDB μπορεί να εκτελέσει αναζητήσεις πεδίου, αναζητήσεις εύρους, καθώς και ερωτήματα κανονικής έκφρασης.
Ευρετηρίαση
Η ευρετηρίαση είναι ένα σημαντικό χαρακτηριστικό μιας βάσης δεδομένων για τη βελτίωση της ταχύτητας αναζήτησης και της απόδοσης των ερωτημάτων αναζήτησης. Χωρίς ευρετηρίαση, μια βάση δεδομένων θα αναγκαστεί να σαρώσει τα έγγραφα ένα προς ένα για να επιλέξει εκείνα που ταιριάζουν με το ερώτημα που θα ήταν αναποτελεσματικό. Ωστόσο, εάν κάθε ερώτημα διαθέτει κατάλληλο δείκτη, τα αιτήματα χρήστη μπορούν να εκτελεστούν γρήγορα από τον διακομιστή. Με την ευρετηρίαση MongoDB είναι δυνατή με οποιοδήποτε πεδίο ή κλειδί, σε ένα έγγραφο που διατηρεί σύνθετα πρότυπα πρόσβασης σε σύνολα δεδομένων.
Βάσης δεδομένων χωρίς σχήματα
Οι κλασικές σχεσιακές βάσεις δεδομένων χρησιμοποιούν ένα σχήμα για να ορίσουν κάθε λειτουργικό στοιχείο, συμπεριλαμβανομένων των πινάκων, των προβολών σειρές, των ευρετηρίων και των σχέσεων. Στο MongoDB, μία συλλογή διατηρεί διαφορετικά έγγραφα. Δεν έχει σχήμα, ώστε να υπάρχουν πολλά έγγραφα σε μια συλλογή, έχοντας ξεχωριστά κλειδιά, και αυτά τα κλειδιά μπορεί να είναι μοναδικά. Μια βάση δεδομένων σχήματος, όπως το MongoDB, είναι πιο ευέλικτη, καθώς δεν φέρει αυτούς τους προκαθορισμένους περιορισμούς, χαρτογράφηση σε μια πιο φυσική βάση δεδομένων.
Για να μάθετε περισσότερα για το MongoDB, επισκεφθείτε εδώ.
Τι είναι η Java?
Η Java είναι μια δημοφιλής γλώσσα προγραμματισμού που’S χρησιμοποιείται κυρίως για την ανάπτυξη από την πλευρά του διακομιστή καθώς και για την ανάπτυξη εφαρμογών για κινητά. Στο σχεδιασμό της, η Java είναι μια αντικειμενοστραφή γλώσσα που απλά σημαίνει ότι όλα τα δεδομένα και οι μέθοδοι αντιπροσωπεύονται ως τάξεις και αντικείμενα.
Η Java μπορεί να καταρτιστεί ή να ερμηνευτεί, πράγμα που σημαίνει ότι η μετάφραση του κώδικα Java σε bytecode ή δυαδική μορφή μπορεί να γίνει χρησιμοποιώντας μεταγλωττιστή ή διερμηνέα. Από τότε που αυτό’είναι μια καταρτισμένη γλώσσα, αυτό’είναι πολύ γρήγορο στο χρόνο εκτέλεσης και επίσης πολύ εύκολο να εντοπίσει σφάλμα.
Ορισμένες κορυφαίες περιπτώσεις χρήσης Java περιλαμβάνουν την ανάπτυξη:
- Εφαρμογές Android
- Εφαρμογές GUI Desktop
- Εφαρμογές ιστού
- Επιστημονικές εφαρμογές
- Εφαρμογές πλευρών διακομιστή χρηματοπιστωτικού τομέα
- Ενσωματωμένα συστήματα
Βασικά χαρακτηριστικά της Java
Τα ακόλουθα χαρακτηριστικά δίνουν στο Java ένα πλεονέκτημα σε σχέση με άλλες γλώσσες προγραμματισμού:
- Αντικειμενοστραφής: Η γλώσσα προγραμματισμού Java αντιμετωπίζει τα πάντα ως αντικείμενο. Μπορεί εύκολα να χαρτογραφήσει σενάρια πραγματικού κόσμου σε κώδικα αντιμετωπίζοντας μεμονωμένες οντότητες ως αντικείμενα.
- Ανεξάρτητη πλατφόρμα: Σε αντίθεση με τις γλώσσες προγραμματισμού όπως το C και το C ++, η Java δεν έχει καταρτιστεί σε μηχάνημα που ειδικά για την πλατφόρμα. Παράγει έναν ανεξάρτητο από την πλατφόρμα κώδικα byte που διανέμεται μέσω του Διαδικτύου και ερμηνεύεται από το Java Virtual Machine (JVM) εγκατεστημένο σε οποιοδήποτε σύστημα.
- Ασφάλεια: Με το χαρακτηριστικό ασφαλείας της γλώσσας προγραμματισμού Java, σας επιτρέπει να αναπτύξετε συστήματα απόδειξη και χωρίς ιούς και χωρίς ιούς. Επίσης, χρησιμοποιεί τεχνικές ελέγχου ταυτότητας με κρυπτογράφηση δημόσιου κλειδιού για να διατηρήσετε ασφαλή τον κωδικό και τα δεδομένα σας.
- Φορητός: Η Java είναι μια γλώσσα προγραμματισμού ανεξάρτητη από την αρχιτεκτονική. Έτσι είναι εύκολο να μεταφέρετε έναν κωδικό γραμμένο στη γλώσσα προγραμματισμού Java σε διαφορετικούς επεξεργαστές.
- Εύρωστος: Η Java είναι μια γλώσσα προγραμματισμού που προσπαθεί να εξαλείψει τις περιπτώσεις επιρρεπείς σε σφάλματα χρησιμοποιώντας έλεγχο σφαλμάτων μεταγλωττισμού και έλεγχος χρόνου εκτέλεσης.
Για να μάθετε περισσότερα σχετικά με τη γλώσσα προγραμματισμού Java, επισκεφθείτε εδώ.
Απλοποιήστε την ανάλυση δεδομένων σας με τον αγωγό δεδομένων χωρίς κώδικα Hevo
Τα δεδομένα HEVO, ένας αυτοματοποιημένος αγωγός δεδομένων χωρίς κώδικα βοηθά στη φόρτωση δεδομένων από οποιαδήποτε πηγή δεδομένων, όπως βάσεις δεδομένων, εφαρμογές SAAS, αποθήκευση σύννεφων, SDK, S και streaming και απλοποιεί τη διαδικασία ETL. Υποστηρίζει 100+ πηγές δεδομένων όπως Μούγκος και φορτώνει τα δεδομένα στην επιθυμητή αποθήκη δεδομένων, εμπλουτίζει τα δεδομένα και τα μετατρέπει σε μορφή έτοιμη για ανάλυση χωρίς να γράφει μία μόνο γραμμή κώδικα.
Ο πλήρως αυτοματοποιημένος αγωγός του προσφέρει δεδομένα που θα παραδοθούν σε πραγματικό χρόνο χωρίς απώλεια από πηγή στον προορισμό. Η αρχιτεκτονική της ανθεκτική και η κλιμακωτή αρχιτεκτονική της διασφαλίζει ότι τα δεδομένα αντιμετωπίζονται με ασφαλή, συνεπή τρόπο με την απώλεια μηδενικών δεδομένων και υποστηρίζουν διαφορετικές μορφές δεδομένων. Οι παρεχόμενες λύσεις είναι συνεπείς και συνεργάζονται με διαφορετικά εργαλεία επιχειρηματικής νοημοσύνης (BI).
Δείτε γιατί ο Hevo είναι το BESΤ:
- Ασφαλής: Η Hevo έχει μια αρχιτεκτονική ανθεκτική σε σφάλματα που εξασφαλίζει ότι τα δεδομένα αντιμετωπίζονται με ασφαλή, συνεπή τρόπο με την απώλεια μηδενικών δεδομένων.
- Διαχείριση σχήματος: Ο Hevo αφαιρεί το κουραστικό καθήκον της διαχείρισης του σχήματος και ανιχνεύει αυτόματα το σχήμα των εισερχόμενων δεδομένων και τα χαρτογραφεί στο σχήμα προορισμού.
- Ελάχιστη μάθηση: Η Hevo, με το απλό και διαδραστικό UI του, είναι εξαιρετικά απλό για τους νέους πελάτες να εργάζονται και να εκτελούν εργασίες.
- Το Hevo είναι κατασκευασμένο για κλίμακα: Καθώς ο αριθμός των πηγών και ο όγκος των δεδομένων σας αυξάνονται, ο Hevo ζυγίζει οριζόντια, χειρίζοντας εκατομμύρια αρχεία ανά λεπτό με ελάχιστη καθυστέρηση.
- Φορτίο αυξητικών δεδομένων: Η HEVO επιτρέπει τη μεταφορά δεδομένων που έχουν τροποποιηθεί σε πραγματικό χρόνο. Αυτό εξασφαλίζει αποτελεσματική χρήση του εύρους ζώνης και στα δύο άκρα.
- Ζωντανή υποστήριξη: Η ομάδα HEVO είναι διαθέσιμη όλο το εικοσιτετράωρο για να επεκτείνει την εξαιρετική υποστήριξη στους πελάτες της μέσω κλήσεων συνομιλίας, ηλεκτρονικού ταχυδρομείου και υποστήριξης.
- Ζωντανή παρακολούθηση: Το HEVO σας επιτρέπει να παρακολουθείτε τη ροή δεδομένων και να ελέγξετε πού βρίσκονται τα δεδομένα σας σε ένα συγκεκριμένο χρονικό σημείο.
Ποια είναι τα βήματα για τη ρύθμιση της ενσωμάτωσης MongoDB Java?
Ας ελπίσουμε ότι, μέχρι τώρα, έχετε αποκτήσει κάποια βασική κατανόηση του MongoDB και της Java καθώς και γιατί αυτοί’χρησιμοποιείται στην ανάπτυξη εφαρμογών. Τώρα ας’βουτιά και ρίξτε μια ματιά στα βήματα χρησιμοποιώντας τα οποία μπορείτε να ρυθμίσετε Mongodb Java ενσωμάτωση:
- Βήμα 1: Εγκαταστήστε το πακέτο OpenJDK
- Βήμα 2: Ρυθμίστε τη μεταβλητή περιβάλλοντος Java_Home
- Βήμα 3: Εγκαταστήστε το MongoDB
- Βήμα 4: Εγκαταστήστε ένα IDE ή έναν επεξεργαστή
- Βήμα 5: Ρυθμίστε ένα νέο έργο Java
- Βήμα 6: Εγκαταστήστε τη βιβλιοθήκη πελατών MongoDB Java
- Βήμα 7: Χρησιμοποιήστε τη βιβλιοθήκη πελατών MongoDB Java
- Βήμα 8: Δημιουργήστε μια συλλογή MongoDB
- Βήμα 9: Δημιουργία εγγράφων
- Βήμα 10: έγγραφα ερωτήματος
- Βήμα 11: Ενημέρωση εγγράφων
- Βήμα 12: Διαγραφή εγγράφων
Βήμα 1: Εγκαταστήστε το πακέτο OpenJDK
Για να ακολουθήσετε μαζί με τη ρύθμιση MongoDB Java, εσείς’Θα πρέπει πρώτα να προετοιμάσετε το τοπικό σας μηχάνημα για την ανάπτυξη Java. Για να το κάνετε αυτό, πρέπει πρώτα να εγκαταστήσετε το πακέτο OpenJDK 8 (Open Java Development Kit).
1) Linux
Αν εσύ’Re στο Debian ή Ubuntu, ανοίξτε τη γραμμή εντολών σας και εκτελέστε την ακόλουθη εντολή:
$ sudo apt-get install openjdk-8-jdk Για Centos, Red Hat, Oracle, Fedora και άλλες παρόμοιες κατανομές Linux χρησιμοποιούν την ακόλουθη εντολή:
$ su -c "yum install java -1.8.0-openjdk-devel " 2) MacOS
Αν εσύ’re on macOS χρησιμοποιήστε την ακόλουθη εντολή:
% Brew Εγκατάσταση OpenJDK@8 Στη συνέχεια, δημιουργήστε έναν συμβολικό σύνδεσμο έτσι ώστε το περιτύλιγμα Java να μπορεί να το βρει:
% sudo ln -sfn/usr/local/opt/openjdk@8/libexec/openjdk.JDK/Library/Java/JavavirtualMachines/OpenJDK-8.jdk 3) Windows
- Κατεβάστε το πρόγραμμα εγκατάστασης MSI από αυτόν τον σύνδεσμο.
- Εξαγάγετε τα αρχεία zip σε φάκελο.
- Εκτελέστε το OpenJDK 8 για το Windows Installer.
- Ακολουθήστε τις προτροπές στην οθόνη για εγκατάσταση.
Βήμα 2: Ρυθμίστε τη μεταβλητή περιβάλλοντος Java_Home
Μόλις το JDK σας είναι στη θέση του, πρέπει να εγκαταστήσετε το περιβάλλον Java για να προχωρήσετε στην ενσωμάτωση MongoDB Java.
1) Linux
- Ανοίξτε το τερματικό και τον τύπο σας:
sudo nano /etc /προφίλ - Στη συνέχεια, μεταβείτε στο τέλος του αρχείου και πληκτρολογήστε:
Εξαγωγή JAVA_HOME =/usr/lib/jvm/java-8-openjdk-amd64/bin/java path export = $ java_home/bin: $ path - Αποθηκεύστε το αρχείο και την έξοδο (ctrl+o, ctrl+x·.
2) MacOS
- Ανοίξτε το τερματικό και τον τύπο σας:
emacs .Προφίλ - Στη συνέχεια, μεταβείτε στο τέλος του αρχείου και πληκτρολογήστε:
Java_home =/βιβλιοθήκη/java/home export java_home; - Αποθήκευση και έξοδος (Ctrl-X, Ctrl-S; ctrl-x, ctrl-c·.
3) Windows
Για να ρυθμίσετε τη μεταβλητή περιβάλλοντος στο μηχάνημα των Windows, ανοίξτε τη γραμμή εντολών με τα προνόμια διαχειριστή και εκτελέστε την ακόλουθη εντολή:
setx -m java_home "c: progra ~ 1javajdk1.8.0_xx " Στη συνέχεια, επανεκκινήστε τη γραμμή εντολών για να φορτώσετε ξανά τις μεταβλητές περιβάλλοντος. Εκτελέστε την ακόλουθη εντολή για να ελέγξετε αν έχει προστεθεί η διαδρομή:
echo %java_home % Βήμα 3: Εγκαταστήστε το MongoDB
Μόλις τελειώσετε με το μέρος Java της ενσωμάτωσης Java MongoDB, η ώρα να εγκαταστήσετε το MongoDB και τα εργαλεία του.
1) Linux
- Ανοίξτε ένα τερματικό και εκδώστε την ακόλουθη εντολή για να εισαγάγετε το δημόσιο κλειδί MongoDB από το σύστημα διαχείρισης πακέτων:
wget -qo - https: // www.μούγκος.org/static/pgp/server-5.0.ASC | Προσθήκη Sudo Apt-Key - - Στη συνέχεια δημιουργήστε ένα αρχείο λίστας εκδίδοντας την ακόλουθη εντολή:
echo "deb [arch = amd64, arm64] https: // repo.μούγκος.org/apt/ubuntu focal/mongodb-org/5.0 multiverse "| sudo tee/etc/apt/πηγές.λίστα.D/MongoDB-org-5.0.λίστα - Ανανέωση της βάσης δεδομένων πακέτων.
Ενημέρωση sudo apt-get - Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε το MongoDB:
sudo apt-get εγκατάσταση -y mongodb-org - Ξεκινήστε το MongoDB:
Sudo SystemCtl Start Mongod - Βεβαιωθείτε ότι το MongoDB εκτελείται:
sudo systemctl κατάσταση mongod Το MongoDB πρέπει να τρέχει στο λιμάνι 27017.
Οι παραπάνω οδηγίες δοκιμάστηκαν στο Ubuntu 20.0. Μπορείτε να λάβετε τις οδηγίες εγκατάστασης για άλλες κατανομές Linux από τον ακόλουθο σύνδεσμο.
2) MacOS
- Εκδίδετε την ακόλουθη εντολή για να κατεβάσετε τη φόρμουλα homebrew για το MongoDB:
Brew Tap Mongodb/Brew - Εγκαταστήστε το MongoDB χρησιμοποιώντας την ακόλουθη εντολή:
Brew Εγκατάσταση [email protected] - Για τους υπολογιστές MacOS που εκτελούν επεξεργαστές Intel, ξεκινήστε το MongoDB χρησιμοποιώντας την ακόλουθη εντολή:
Mongod -Config/usr/local/etc/mongod.συγχρονισμός - Για τους υπολογιστές MacOS που εκτελούν επεξεργαστές M1, χρησιμοποιήστε την ακόλουθη εντολή:
Mongod - -Config/opt/homebrew/etc/mongod.συγχρονισμός 3) Windows
- Κατεβάστε το πρόγραμμα εγκατάστασης MongoDB MSI από αυτόν τον σύνδεσμο.
- Εκτελέστε το πρόγραμμα εγκατάστασης κάνοντας διπλό κλικ στο .αρχείο MSI.
- Ακολουθήστε τις προτροπές στην οθόνη για εγκατάσταση.
Βήμα 4: Εγκαταστήστε ένα IDE ή έναν επεξεργαστή
Για να εκτελέσετε τα παραδείγματα που δίνονται σε αυτό το ιστολόγιο, συνιστούμε να χρησιμοποιήσετε ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE). Αυτό οφείλεται στο γεγονός ότι το καθιστά πολύ πιο βολικό για εσάς να ρυθμίσετε το Maven ή το Gradle κατά την οικοδόμηση και τη λειτουργία του έργου σας Java.
Από κάτω σου’θα βρείτε μια λίστα με ορισμένους δημοφιλείς συντάκτες που χρησιμοποιούνται για την ανάπτυξη εφαρμογών Java και θα ταιριάζουν στο δικό σας Mongodb Java ενσωμάτωση:
- Άτομο από το github
- Intellij ιδέα από jetbrains
- Κωδικός Visual Studio από τη Microsoft
- Eclipse από το Ίδρυμα Eclipse
Αυτά τα IDE προσφέρουν χρήσιμα χαρακτηριστικά όπως η επισήμανση σύνταξης, η ολοκλήρωση κώδικα, οι πλήρως ολοκληρωμένες δυνατότητες εντοπισμού σφαλμάτων και πολλά άλλα.
Βήμα 5: Ρυθμίστε ένα νέο έργο Java
Χρησιμοποιώντας το αγαπημένο σας IDE, δημιουργήστε ένα νέο έργο Maven ή Gradle. Αν εσύ’Χρησιμοποιώντας το Maven, θα πρέπει να πάρετε την ακόλουθη δομή φακέλων:
java-quick-start/     â.xml                Εάν χρησιμοποιείτε το Gradle, θα πρέπει να έχετε την ακόλουθη δομή του φακέλου:
Κατασκευάστε.Gradle         â Βήμα 6: Εγκαταστήστε τη βιβλιοθήκη πελατών MongoDB για Java
Η βιβλιοθήκη πελατών MongoDB για Java σάς επιτρέπει να συνδεθείτε και να επικοινωνείτε με την παρουσία σας MongoDB από μια εφαρμογή Java.
Εάν χρησιμοποιείτε το Maven, προσθέστε τη βιβλιοθήκη πελατών MongoDB Java στη λίστα εξαρτήσεων σας στο δικό σας πηξέωμα.XML αρχείο.
org.μούγκος MongoDB-Driver-Sync 4.4.1 Τα δικα σου πηξέωμα.XML Το αρχείο πρέπει τώρα να μοιάζει με αυτό:
4.0.0 com.μούγκος java-quick-start 1.0-snapshot 8 8 UTF-8 4.4.1 3.10.0 org.μούγκος MongoDB-Driver-Sync $ org.απάχης.φουσκωτό.πρόσθετα maven-compiler-plugin $ $ $ Αν εσύ’χρησιμοποιώντας το Gradle, προσθέστε το παρακάτω απόσπασμα κώδικα στο δικό σας χτίζω.βαθμίδα Λίστα εξαρτήσεων για την ενσωμάτωση του MongoDB Java:
εξαρτήσεις
Τα δικα σου χτίζω.βαθμίδα Το αρχείο πρέπει να μοιάζει με το ακόλουθο αρχείο:
πρόσθετα < id 'base' >εισαγωγή org.βαθμίδα.διανομή.Downloadgradle έκδοση = '0.1 'εξαρτήσεις < compile 'org.mongodb:mongodb-driver-sync:4.4.1' >καθήκοντα.Εγγραφή ('Downloadgradle', DownloadGradle) < description = 'Downloads the Gradle distribution with a given version.' gradleVersion = '4.6' >καθήκοντα.Μητρώο ('CreateCustomgradledbly', Zip) < description = 'Builds custom Gradle distribution and bundles initialization scripts.' dependsOn downloadGradle def projectVersion = project.version archiveFileName = downloadGradle.gradleVersion.map < gradleVersion ->"MyCompany-Gradle-$-$-Bin.Zip "> από το ZipTree (downloadgradle.DestinationFile) από το (SRC/init.ρε') < into "$/init.d" > > Βήμα 7: Χρησιμοποιώντας τη βιβλιοθήκη πελατών MongoDB Java
Για να χρησιμοποιήσετε τη βιβλιοθήκη πελατών MongoDB Java, δημιουργήστε ένα αρχείο που θα περιέχει την εφαρμογή σας μέσα στον κατάλογο βασικών συσκευασιών του έργου σας. Μπορείτε να το ονομάσετε Εφαρμογή.Ιάβα.
Προσθέστε τις ακόλουθες δηλώσεις εισαγωγής για να αρχικοποιήσετε τη βιβλιοθήκη:
Εισαγωγή στατικού com.μούγκος.πελάτης.μοντέλο.Φίλτρα.EQ; εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή com.μούγκος.πελάτης.Mongoclient; εισαγωγή com.μούγκος.πελάτης.Mongoclients; εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; Βήμα 8: Δημιουργήστε μια συλλογή MongoDB
Με αυτό εκτός δρόμου, αυτό’Τώρα η ώρα που η ενσωμάτωση του MongoDB Java αλληλεπιδρά με τη βάση δεδομένων. Αφήνω’S START START δημιουργώντας μια συλλογή. Μπορείτε να δημιουργήσετε μια συλλογή MongoDB καθορίζοντας τη βάση δεδομένων προορισμού χρησιμοποιώντας το getDatabase () μέθοδος και στη συνέχεια επικαλούμενη το createCollection () μέθοδος του com.μούγκος.πελάτης.Μογγοδταταβύθισμα διεπαφή. Αυτή η μέθοδος δέχεται μια κυριολεκτική τιμή συμβολοσειράς με το όνομα της συλλογής. Εάν η βάση δεδομένων δεν υπάρχει, το MongoDB θα το δημιουργήσει σιωπηρά.
Το παρακάτω απόσπασμα κώδικα δημιουργεί μια συλλογή σε μια βάση δεδομένων MongoDB:
Εισαγωγή Java.χρησιμοποιώ.Συστοιχίες? εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή org.μπόνου.πληκτρολογώ.ObjectId; εισαγωγή com.μούγκος.Mongoexception; εισαγωγή com.μούγκος.πελάτης.Mongoclient; εισαγωγή com.μούγκος.πελάτης.Mongoclients; εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; εισαγωγή com.μούγκος.πελάτης.αποτέλεσμα.INSERTONERESULT; Δημόσια τάξη createCollection < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; // Create a MongoDB Client MongoClient mongoClient = MongoClients.create(uri)); // Create a MongoDB database MongoDatabase database = mongoClient.getDatabase("usersDB"); // Create a MongoDB Collection MongoCollectioncollection = database.createCollection("users"); System.out.println("Collection Created Successfully!"); > > Βήμα 9: Δημιουργία εγγράφων
Το ακόλουθο απόσπασμα χρησιμοποιεί το insertone () Μέθοδος για την εισαγωγή ενός εγγράφου στον χρήστη’Συλλογή που δημιουργήσατε στο προηγούμενο βήμα. Εάν η βάση δεδομένων ή η συλλογή δεν υπάρχει, το MongoDB θα δημιουργήσει και τα δύο.
Εισαγωγή Java.χρησιμοποιώ.Συστοιχίες? εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή org.μπόνου.πληκτρολογώ.ObjectId; εισαγωγή com.μούγκος.Mongoexception; εισαγωγή com.μούγκος.πελάτης.Mongoclient; εισαγωγή com.μούγκος.πελάτης.Mongoclients; εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; εισαγωγή com.μούγκος.πελάτης.αποτέλεσμα.INSERTONERESULT; δημόσιο κλάση Insertone < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); try < InsertOneResult result = collection.insertOne(new Document() .append("_id", new ObjectId()) .append("username", "vitali@30") .append("phonenumber", 2501345876) .append("email", "[email protected]) ); System.out.println("Success! Inserted document id: " + result.getInsertedId()); >Πιάσε (mongoexception me) < System.err.println("Unable to insert due to an error: " + me); >>>> Είναι επίσης δυνατό να εισαγάγετε πολλαπλά έγγραφα σε μια συλλογή με ένα πάτημα επικαλούμενοι το insertMany () μέθοδος. Για να εισαγάγετε πολλά έγγραφα, πρέπει να τα προσθέσετε σε μια λίστα και να περάσετε τη λίστα ως πίνακα. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να χρησιμοποιήσετε το insertMany () μέθοδος για την επίτευξη αυτού.
Εισαγωγή Java.χρησιμοποιώ.Συστοιχίες? Εισαγωγή Java.χρησιμοποιώ.Λίστα; εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή com.μούγκος.Mongoexception; εισαγωγή com.μούγκος.πελάτης.Mongoclient; εισαγωγή com.μούγκος.πελάτης.Mongoclients; εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; εισαγωγή com.μούγκος.πελάτης.αποτέλεσμα.INSERTMANYRESULT; δημόσιο ένθετο τάξης < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); List userList = Arrays.asList( new Document().append("username", "owen hart"), new Document().append("username", "jack grealish")); try < InsertManyResult result = collection.insertMany(userList); System.out.println("Inserted document ids: " + result.getInsertedIds()); >Πιάσε (mongoexception me) < System.err.println("Unable to insert due to an error: " + me); >>>> Βήμα 10: έγγραφα ερωτήματος
Εργασία με την ενσωμάτωση του MongoDB Java, μπορείτε να ανακτήσετε έγγραφα σε μια συλλογή επικαλούμενοι το εύρημα() μέθοδος. Αυτή η μέθοδος επιστρέφει ένα επαναλαμβανόμενο αντικείμενο που περιέχει όλα τα έγγραφα σε μια συλλογή:
εισαγωγή com.μούγκος.πελάτης.Finditable? εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; Εισαγωγή Java.χρησιμοποιώ.Iterator; εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή com.μούγκος.Mongoclient; Βρείτε δημόσια τάξη < public static void main( String[] args ) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); FindIterable iterDoc = collection.find(); Iterator it = iterDoc.iterator(); while (it.hasNext()) < System.out.println(doc.it.next()); >>>> Βήμα 11: Ενημέρωση εγγράφων
Οι ενημερώσεις σε μια βάση δεδομένων MongoDB μπορούν να γίνουν χρησιμοποιώντας το updateOne () μέθοδος του Ενημερώσεις τάξη. Στο παρακάτω παράδειγμα, θα ενημερώσετε την τιμή του αριθμού τηλεφώνου και θα προσθέσετε μια διεύθυνση στο έγγραφο που ταιριάζει με το όνομα χρήστη “vitali@30”.
εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή org.μπόνου.μετατροπές.Bson; εισαγωγή com.μούγκος.Mongoexception; εισαγωγή com.μούγκος.πελάτης.Mongoclient; εισαγωγή com.μούγκος.πελάτης.Mongoclients; εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; εισαγωγή com.μούγκος.πελάτης.μοντέλο.UpdateOptions; εισαγωγή com.μούγκος.πελάτης.μοντέλο.Ενημερώσεις · εισαγωγή com.μούγκος.πελάτης.αποτέλεσμα.Updateresult; Δημόσια τάξη ενημέρωσης < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); Document query = new Document().append("username", "vitali@30"); Bson updates = Updates.combine( Updates.set("phonenumber", 010154257), Updates.addToSet("address", "666, 5th Avenue, NYC")); UpdateOptions options = new UpdateOptions().upsert(true); try < UpdateResult result = collection.updateOne(query, updates, options); System.out.println("Modified document count: " + result.getModifiedCount()); System.out.println("Upserted id: " + result.getUpsertedId()); // only contains a value when an upsert is performed >Πιάσε (mongoexception me) < System.err.println("Unable to update due to an error: " + me); >>>> Βήμα 12: Διαγραφή εγγράφων
Μόλις ρυθμιστεί η ενσωμάτωση του MongoDB Java, μπορείτε ακόμα να εκτελέσετε μια λειτουργία διαγραφής σε ένα έγγραφο σε μια mongoDBCollection χρησιμοποιώντας το deleteOne () μέθοδος. Η μέθοδος δέχεται ένα φίλτρο ερωτήματος που ταιριάζει με το έγγραφο που θέλετε να διαγράψετε.
Το παρακάτω απόσπασμα κώδικα θα διαγράψει έναν χρήστη χρησιμοποιώντας το eq () Φιλτράρετε για να προσδιορίσετε έναν συγκεκριμένο χρήστη με το όνομα χρήστη “vitali@30” Από την ενσωμάτωση MongoDB Java:
Εισαγωγή στατικού com.μούγκος.πελάτης.μοντέλο.Φίλτρα.EQ; εισαγωγή org.μπόνου.Εγγραφο; εισαγωγή org.μπόνου.μετατροπές.Bson; εισαγωγή com.μούγκος.Mongoexception; εισαγωγή com.μούγκος.πελάτης.Mongoclient; εισαγωγή com.μούγκος.πελάτης.Mongoclients; εισαγωγή com.μούγκος.πελάτης.Mongocollection; εισαγωγή com.μούγκος.πελάτης.Mongodatabase; εισαγωγή com.μούγκος.πελάτης.αποτέλεσμα.DeLeteresult; δημόσια τάξη deleteone < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); Bson query = eq("username", "vitali@30"); try < DeleteResult result = collection.deleteOne(query); System.out.println("Deleted document count: " + result.getDeletedCount()); >Πιάσε (mongoexception me) < System.err.println("Unable to delete due to an error: " + me); >>>> Οτι’Καθίστε! Τώρα μπορείτε να ρυθμίσετε το δικό σας Mongodb Java ενσωμάτωση.
συμπέρασμα
Αυτό το άρθρο σας εισήγαγε στη γλώσσα προγραμματισμού MongoDB και Java μαζί με τα βασικά χαρακτηριστικά τους. Εάν έχετε ολοκληρώσει με επιτυχία αυτόν τον οδηγό, θα πρέπει να έχετε μια καλή ιδέα για το πώς να ρυθμίσετε το Mongodb Java ενσωμάτωση. Έχετε καλύψει τα βήματα που απαιτούνται για τη ρύθμιση περιβάλλοντος ανάπτυξης MongoDB και Java στον υπολογιστή ή τον διακομιστή σας. Καλύψατε επίσης τον τρόπο χρήσης του προγράμματος οδήγησης Java για να συνδεθείτε με την παρουσία σας MongoDB. Τέλος, είδατε παραδείγματα για το πώς να γράψετε μερικές απλές λειτουργίες MongoDB Java CRUD.
Το MongoDB είναι ένα εξαιρετικό εργαλείο για την αποθήκευση των δεδομένων της επιχείρησής σας. Ωστόσο, μερικές φορές, πρέπει να μεταφέρετε αυτά τα δεδομένα σε μια αποθήκη δεδομένων για περαιτέρω ανάλυση. Η οικοδόμηση μιας λύσης στο σπίτι για αυτή τη διαδικασία θα μπορούσε να είναι μια δαπανηρή και χρονοβόρα εργασία. Τα δεδομένα HEVO, από την άλλη πλευρά, προσφέρουν έναν αγωγό δεδομένων χωρίς κώδικα που μπορεί να αυτοματοποιήσει τη διαδικασία μεταφοράς δεδομένων σας, επιτρέποντάς σας να εστιάσετε σε άλλες πτυχές της επιχείρησής σας όπως τα αναλυτικά στοιχεία, τη διαχείριση πελατών κ.λπ. Αυτή η πλατφόρμα σάς επιτρέπει να μεταφέρετε δεδομένα από 100+ πηγές όπως Μούγκος σε αποθήκες δεδομένων που βασίζονται σε σύννεφο όπως νιφάδα χιονιού, Google BigQuery, Amazon Redshift κ.λπ. Θα σας προσφέρει μια εμπειρία χωρίς προβλήματα και θα κάνει τη ζωή σας πολύ πιο εύκολη.
Θέλετε να πάρετε το Hevo για περιστροφή? Εγγραφείτε για δωρεάν δοκιμή 14 ημερών και ζήστε την πλούσια σε χαρακτηριστικά HEVO Suite από πρώτο χέρι.
Μοιραστείτε τις απόψεις σας για Mongodb Java ενσωμάτωση στην ενότητα σχολίων!
Java MongoDB Συναλλαγές: Δημιουργία, διαχείριση & ροές εργασίας Απλοποιημένη | Ένας οδηγός 101
Η διαχείριση βάσεων δεδομένων και η εκτέλεση αρκετών λειτουργιών στα δεδομένα μπορεί να είναι προκλητικές. Τα συστήματα διαχείρισης βάσεων δεδομένων εισήχθησαν για την επίλυση των προβλημάτων διαχείρισης και εργασίας των δεδομένων που συλλέγονται. Μία από τις πιο δημοφιλείς βάσεις δεδομένων είναι το MongoDB. Το MongoDB είναι μια από τις πιο ευέλικτες βάσεις δεδομένων και η εκτέλεση με το Java το καθιστά ακόμα πιο γρήγορο και ευκολότερο.
Πίνακας περιεχομένων
Σε αυτό το άρθρο, θα μάθετε για τις συναλλαγές Java MongoDB. Και επιπλέον, θα συζητήσουμε πώς να δημιουργήσουμε, να διαχειριστούμε και να συνεργαστούμε με τις συναλλαγές MongoDB.
Πίνακας περιεχομένων
- Προϋποθέσεις
- Τι είναι το MongoDB?
- Πώς να τρέξετε mongoDB με java?
- Τι είναι η συναλλαγή MongoDB?
- Δημιουργία συναλλαγών Java MongoDB
- Διαχείριση συναλλαγών Java MongoDB
- Ροή εργασίας των συναλλαγών Java MongoDB
- συμπέρασμα
Προϋποθέσεις
Βασική κατανόηση των βάσεων δεδομένων.
Τι είναι το MongoDB?
Το MongoDB είναι μια βάση δεδομένων NoSQL που είναι θεμελιωδώς διαφορετική από τις βάσεις δεδομένων SQL. Το MongoDB είναι μια μη σχετική βάση, ανοικτού κώδικα, ανεξάρτητη από την πλατφόρμα και βάση δεδομένων που βασίζεται σε έγγραφα. Οι βάσεις δεδομένων SQL αποθηκεύουν τα σχετικά δεδομένα σε πίνακες, ενώ το MongoDB ασχολείται με μη σχετικά δεδομένα.
Το MongoDB υποστηρίζει τις συναλλαγές οξέος (ατομικότητα, συνέπεια, απομόνωση και ανθεκτικότητα) σε μεμονωμένα ή πολλαπλά έγγραφα. Αυτές οι ιδιότητες οξέος των συναλλαγών εξασφαλίζουν ότι οι πολύπλοκες λειτουργίες συναλλαγών είναι ασφαλείς και αξιόπιστες, εξασφαλίζοντας την εγκυρότητα των δεδομένων. Το MongoDB εισήγαγε πολλαπλά έγγραφα, συλλογές και βάσεις δεδομένων οξέος σε MongoDB 4.0 έκδοση.
Το MongoDB τρέχει σε τυπικά λειτουργικά συστήματα, Windows, Linux, MacOS και το σύννεφο. Η έκδοση MongoDB που εκτελείται στο λειτουργικό σύστημα είναι ο κοινοτικός διακομιστής MongoDB και η εγκατάσταση MongoDB στο σύννεφο ονομάζεται MongoDB Atlas.
Πώς να τρέξετε mongoDB με java?
Αποκτήστε το Java εγκατεστημένο στο σύστημά σας και το προτιμώμενο ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) έτοιμο. Για να ρυθμίσετε το Java και το MongoDB, πρώτα, θα πρέπει να πάρετε τον οδηγό MongoDB Java. Οι πόροι για την εγκατάσταση MongoDB θα παραληφθούν από δύο IDE είτε στο Gradle είτε στο Maven. Οι οδηγοί MongoDB Java παρέχουν σύγχρονη και ασύγχρονη αλληλεπίδραση.
Βήματα για να πάρετε το πρόγραμμα οδήγησης Java MongoDB
- Εγκαταστήστε τη σωστή έκδοση του προγράμματος οδήγησης MongoDB από αυτόν τον ιστότοπο. Στη συνέχεια, μεταβείτε στα προϊόντα από το εικονίδιο μενού. Βρες το ‘Δεδομένα απευθείας’ επιλογή και κάντε κλικ σε αυτό.
- Θα ανακατευθύνετε σε μια άλλη ιστοσελίδα όπου μπορείτε να βρείτε το ‘Συνδεσιμότητα δεδομένων’ Επιλογή στον πίνακα επισκόπησης, κάτω από τον οποίο θα δείτε το JDBC. Κάντε κλικ σε αυτό.
- Μια άλλη σελίδα θα ανοίξει. Αναζητήστε το MongoDB από τη λίστα και κάντε κλικ σε αυτό για να προχωρήσετε περαιτέρω.
- Θα εμφανιστεί μια νέα σελίδα, όπου θα δείτε την επιλογή λήψης. Κάντε κλικ σε αυτό, και στη συνέχεια θα έχετε δύο επιλογές. Windows και Linux. Σύμφωνα με το σύστημα του λειτουργικού σας συστήματος, κάντε κλικ σε αυτό για λήψη.
- Πρέπει να συμπληρώσετε μια φόρμα για λήψη και κάντε κλικ στο κουμπί λήψης.
- Μετά τη λήψη, εξαγάγετε το αρχείο σας.
- Ανοίξτε το εξαγόμενο αρχείο για να ξεκινήσετε την εγκατάσταση. Κάντε κλικ στο ‘Επόμενο’ να προχωρήσει.
- Αποδεχτείτε όλους τους όρους και τις προϋποθέσεις και, στη συνέχεια, προχωρήστε κάνοντας κλικ στο κουμπί Επόμενο.
- Σημείωση: Μην αλλάζετε τίποτα στα επερχόμενα δύο παράθυρα. Κάντε κλικ στο κουμπί Επόμενο για να προχωρήσετε.
- Τέλος, θα φτάσετε στην επιλογή Εγκατάσταση. Κάντε κλικ σε αυτό και η εγκατάσταση θα ξεκινήσει.
- Περιμένετε να ολοκληρωθεί η διαδικασία εγκατάστασης.
- Όταν ολοκληρωθεί η εγκατάσταση, κάντε κλικ στο Τέλος για να ολοκληρώσετε την εγκατάσταση.
- Ανοίξτε τη μονάδα C και ακολουθήστε την παρακάτω διαδρομή. Εάν βρείτε ένα φάκελο JDBC, η εγκατάσταση είναι επιτυχής.
Κλήση της ενσωμάτωσης των δεδομένων σας αβίαστα με το HEVO’S Ανεκτονητικό Σφάλμα ΟΧΙ ΚΩΔΙΚΟΣ ΔΕΔΟΜΕΝΟΣ
Καθώς η ικανότητα των επιχειρήσεων να συλλέγουν τα δεδομένα εκρήγνυται, οι ομάδες δεδομένων έχουν καθοριστικό ρόλο στην τροφοδοσία των αποφάσεων που βασίζονται σε δεδομένα. Ωστόσο, αγωνίζονται να εδραιώσουν τα διάσπαρτα δεδομένα στην αποθήκη τους για να οικοδομήσουν μια ενιαία πηγή αλήθειας. Οι σπασμένοι αγωγοί, τα προβλήματα ποιότητας των δεδομένων, τα σφάλματα και τα σφάλματα και η έλλειψη ελέγχου και η ορατότητα της ροής δεδομένων καθιστούν την ενσωμάτωση δεδομένων εφιάλτη.
Οι ομάδες δεδομένων 1000+ βασίζονται στο HEVO’S Πλατφόρμα αγωγών δεδομένων για την ενσωμάτωση δεδομένων από πάνω από 150+ πηγές σε λίγα λεπτά. Δισεκατομμύρια συμβάντα δεδομένων από πηγές τόσο ποικίλες όσο οι εφαρμογές SaaS, οι βάσεις δεδομένων, η αποθήκευση αρχείων και οι πηγές ροής μπορούν να αναπαραχθούν σε σχεδόν πραγματικό χρόνο με το HEVO’S Αρχιτεκτονική ανθεκτικής σε σφάλματα. Τι’S περισσότερο-Η HEVO δίνει πλήρη έλεγχο στα χέρια των ομάδων δεδομένων με διαισθητικούς πίνακες ελέγχου για την παρακολούθηση των αγωγών, τη διαχείριση αυτόματου σχεδίου και τα χρονοδιαγράμματα πρόσληψης/φόρτωσης/φόρτωσης.
Αυτό, σε συνδυασμό με τη διαφανή τιμολόγηση και την υποστήριξη 24 × 7, μας κάνει το πιο ειδικό λογισμικό αγωγών δεδομένων σε ιστότοπους αναθεώρησης.
Πάρτε τη δωρεάν δοκιμή 14 ημερών για να δοκιμάσετε έναν καλύτερο τρόπο για τη διαχείριση των αγωγών δεδομένων.
Τι είναι η συναλλαγή MongoDB?
Η συναλλαγή στο MongoDB είναι μια λογική ομάδα διαδικασιών που εκτελεί μία ή περισσότερες λειτουργίες σε πολλά έγγραφα. Η συναλλαγή παρέχει έναν τρόπο να ομαδοποιήσει και να απομονώσει πολλαπλές δηλώσεις και να τις επεξεργαστεί ως ενιαία λειτουργία.
Αντί να εκτελέσετε μια δέσμη εντολών ξεχωριστά, μπορείτε να χρησιμοποιήσετε συναλλαγές για να συνδεθείτε μαζί και να εκτελέσετε τις εντολές σε διαφορετικό πλαίσιο.
Αυτές οι λειτουργίες στις συναλλαγές είναι οι πολλαπλές λειτουργίες ανάγνωσης και εγγραφής που γίνονται από και προς τη βάση δεδομένων MongoDB. Οι συναλλαγές διατηρούν την ακεραιότητα του συνόλου των εργασιών και παρέχουν ισχυρή συνέπεια δεδομένων στον τελικό χρήστη.
Οι συναλλαγές στο MongoDB έχουν ιδιότητες οξέος. Αυτές οι ιδιότητες εξασφαλίζουν ότι οι πολύπλοκες λειτουργίες είναι ασφαλείς και αξιόπιστες. Το MongoDB υποστηρίζει πολλαπλό και κατανεμημένο πολλαπλών εγγράφων.
Δημιουργία συναλλαγών Java MongoDB
Οι συναλλαγές μπορούν να πραγματοποιηθούν μόνο σε βάσεις δεδομένων που εκτελούνται ως μέρος ενός μεγάλου συμπλέγματος. Αυτό το σύμπλεγμα μπορεί είτε να είναι ένα θορυβώδες σύμπλεγμα βάσεων δεδομένων είτε ένα σετ ρεπλίκα. Συνήθως, οι συναλλαγές MongoDB γράφονται και εκτελούνται από εξωτερικές εφαρμογές μέσω μεθόδων API. Εδώ εμείς’θα δημιουργήσω μια συναλλαγή χρησιμοποιώντας το κέλυφος MongoDB.
Σημείωση: Μετά την αρχική μέθοδο startTransaction (), η λειτουργία θα ακυρώσει αυτόματα εάν η περίοδος συναλλαγής εκτελείται για περισσότερα από 60 δευτερόλεπτα.
Ακολουθούν τα βήματα για την εννοιοποίηση μιας συνεδρίας συναλλαγής από την αρχή μέχρι το τέλος.
ϋΒ.συντάκτης.εύρημα() [ < _id: ObjectId("620397dd4b871fc65c193106"), first_name: 'James', last_name: 'Joyce', title: 'Ulysses' >, < _id: ObjectId("620398016ed0bb9e23785973"), first_name: 'William', last_name: 'Gibson', title: 'Neuromancer' >, < _id: ObjectId("6203981d6ed0bb9e23785974"), first_name: 'George', last_name: 'Orwell', title: 'Homage to Catalonia' >, < _id: ObjectId("620398516ed0bb9e23785975"), first_name: 'James', last_name: 'Baldwin', title: 'The Fire Next Time' >] Ίδια με ένα API, δημιουργείτε μια συνεδρία συναλλαγής χρησιμοποιώντας τον κωδικό:
var session = db.getMongo ().εκκίνηση () Το επόμενο βήμα είναι να ξεκινήσετε τη συναλλαγή καλώντας τη μέθοδο startTransaction (). Χρησιμοποιήστε την παρακάτω εντολή:
συνεδρία.startTransaction ( < "readConcern": < "level": "snapshot" >, "Writeconcern": < "w": "majority >>) Υπάρχουν δύο επιλογές για τη μέθοδο StartTransaction (): Διαβάστε την ανησυχία και τη σύνταξη ανησυχίας.
Το σύνολο ανάγνωσης ανάγνωσης αγνοείται μέσα στη συναλλαγή σε επίπεδο συλλογής και βάσης δεδομένων. Επομένως, πρέπει να ορίσετε την ανησυχία ανάγνωσης σε επίπεδο συναλλαγής στο StartTransaction (). Ωστόσο, τα προεπιλεγμένα σύνολα ανάγνωσης για την ανάγνωση σε επίπεδο συνεδρίας για μια συναλλαγή για μια συναλλαγή.
Εάν δεν έχουν οριστεί τόσο η ανησυχία ανάγνωσης σε επίπεδο συναλλαγής όσο και σε επίπεδο συνεδρίας, τότε οι ανησυχίες ανάγνωσης του επιπέδου πελάτη έχουν οριστεί αυτόματα. Η ανησυχία ανάγνωσης σε επίπεδο πελάτη είναι ‘τοπικός’ για αναγνώσεις εναντίον της πρωτοβάθμιας.
Η σύνταξη της ανησυχίας χρησιμοποιείται για τη διάπραξη των εργασιών εγγραφής. Οι λειτουργίες εγγραφής εντός των συναλλαγών πρέπει να εκδίδονται σιωπηρά με τον καθορισμό της ανησυχίας εγγραφής. Οι εργασίες εγγραφής δεσμεύονται στη συνέχεια χρησιμοποιώντας την ανησυχία εγγραφής σε επίπεδο συναλλαγής.
Μπορείτε να ορίσετε την ανησυχία εγγραφής σε επίπεδο συναλλαγής στο StartTransaction (). Εάν δεν έχει οριστεί η ανησυχία για εγγραφή σε επίπεδο συναλλαγών, είναι προεπιλεγμένη για την ανησυχία για τη σύνταξη της συνεδρίας για τη δέσμευση. Εάν τόσο οι ανησυχίες εγγραφής σε επίπεδο συναλλαγών όσο και σε επίπεδο συνεδρίας είναι Unset, η ανησυχία για τη σύνταξη συναλλαγών πηγαίνει αυτόματα στην ανησυχία εγγραφής σε επίπεδο πελάτη.
Διαχείριση συναλλαγών Java MongoDB
Η διαχείριση όλων των συναλλαγών μπορεί να είναι έντονη δουλειά, αλλά εδώ είναι μερικοί τρόποι για τη διαχείριση των συναλλαγών. Μπορείτε να προσθέσετε υποστήριξη συναλλαγών χρησιμοποιώντας Java Spring Data και Java Mongo Drivers. Ένα API οδηγού το κάνει αυτό:
δοκιμάστε (session clientession = πελάτης.εκκίνηση ()) < session.startTransaction(); try < collection.insertOne(session, documentOne); collection.insertOne(session, documentTwo); session.commitTransaction(); >Catch (Εξαίρεση ε) < session.abortTransaction(); >> Οι συνεδρίες πελάτη που λαμβάνονται από τον πελάτη.Το stackession () θα πρέπει να είναι βραχύβια και να απελευθερώνεται αμέσως όταν δεν χρειάζεται πλέον. Έτσι, βεβαιωθείτε ότι θα συμπεριλάβετε την εντολή close ().
Το παραπάνω απόσπασμα περιέχει τη συνεδρία (LSID) σε κάθε γραμμή εντολών. ‘εκκίνηση’ αποστέλλεται με την πρώτη εντολή που αντιπροσωπεύει τη συναλλαγή. Και όταν ολοκληρωθεί, η συναλλαγή διαπράττεται με αποστολή ‘διαπράττιση.’
Οι προηγούμενες εκδόσεις του MongoDB δεν υποστήριξαν τις συναλλαγές, οπότε το ουσιαστικό μέρος είναι να διαμορφώσετε το MongotransactionManager στο ApplicationContext σας. Ο διαχειριστής συναλλαγών είναι ένα σημείο εισόδου για την υποστήριξη συναλλαγών που βασίζεται σε σχολιασμό. Για διαμόρφωση, χρησιμοποιήστε τον παρακάτω κωδικό:
@Configuration class config επεκτείνει το AbstractMongoConfiguration < @Bean MongoTransactionManager transactionManager(MongoDbFactory dbFactory) < return new MongoTransactionManager(dbFactory); >> @Service Class Documentservice < private final MongoOperations operations; DocumentService(MongoOperations operations) < this.operations = operations; >@Transactional Void InserTDocuments () < operations.insert(documentOne); operations.insert(documentTwo); >> Οτι’Καθίστε. Δεν υπάρχει τίποτα για τη διαχείριση των συναλλαγών Java MongoDB, οπότε υπάρχουν μερικά απλά βήματα για να εξετάσουμε.
Ροή εργασίας των συναλλαγών Java MongoDB
Στο πρώτο στάδιο της χρήσης της συναλλαγής, πρέπει να ξεκινήσετε μια συνεδρία MongoDB μέσω προγράμματος οδήγησης. Αυτό το άρθρο ακολουθεί μια συνεδρία MongoDB με τον οδηγό MongoDB Java. Στη συνέχεια, χρησιμοποιήστε αυτήν τη συνεδρία για να εκτελέσετε την ομάδα των εργασιών της βάσης δεδομένων σας. Μπορείτε να εκτελέσετε οποιοδήποτε CRUD (δημιουργήστε, ανάγνωση, ενημέρωση και διαγραφή) σε πολλαπλά έγγραφα, συλλογές και θραύσματα.
Μούγκος’Οι συναλλαγές S έχουν ρίζες μονού εδάφους, ακόμη και στο πλαίσιο ενός ενιαίου Shard. Η μηχανή αποθήκευσης και το πρωτόκολλο αναπαραγωγής αντικαθίστανται για το μονοπάτι για συναλλαγές. Που δίνεται παρακάτω είναι ένας αριθμός που αντιπροσωπεύει μια εφαρμογή ηλεκτρονικού εμπορίου που έχει 2 πελάτες MongoDB.

Εδώ, ο πελάτης 1 εκτελεί συναλλαγές και ο πελάτης 2 διαβάζει μια εγγραφή που ενημερώνεται από τη συναλλαγή που επικαλείται ο πελάτης 1. Ο Πελάτης 1 εισάγει μια νέα παραγγελία στη συλλογή παραγγελιών και ενημερώνει το απόθεμα του διαταγμένου στοιχείου (υποθέτοντας ότι η παραγγελία αποστέλλεται με επιτυχία). Τώρα, η μόνη ανησυχία εγγραφής κατάλληλο για υψηλή ανθεκτικότητα των δεδομένων είναι η πλειοψηφία. Η πλειοψηφία σημαίνει τα περισσότερα αντίγραφα, εγώ.μι., Η πλειοψηφία των αντιγράφων, είναι να διαπράττουν τις αλλαγές πριν από την πρωτοβάθμια αναγνωρίσει την επιτυχία της εγγραφής στον πελάτη.
Η συναλλαγή θα μπλοκαριστεί έως ότου τουλάχιστον ένα ή δύο δευτερεύοντα τραβήξει την ενημέρωση από το πρωτεύον χρησιμοποιώντας την αναπαραγωγή. Αυτή η διαδικασία κάνει το MongoDB’Η συναλλαγή Single-Shard γράφει λίγο πιο αργή από άλλες συναλλαγές NOSQLS.
συμπέρασμα
Περπατήσαμε χρησιμοποιώντας το MongoDB στη Java και τη συναλλαγή’δημιουργία, διαχείριση και ροή εργασίας. Η χρήση συναλλαγών Java MongoDB σε βάσεις δεδομένων εγγυάται ότι μια βάση δεδομένων θα κατέχει συνεπή κατάσταση μετά τη λειτουργία μιας ομάδας λειτουργιών.
Το MongoDB έχει υιοθετήσει τη λειτουργία των συναλλαγών από τα πιο γνωστά συναλλακτικά πρότυπα που εφαρμόζονται στις βάσεις δεδομένων MySQL, Oracle και άλλων οξέων οξέος. Κατά ειρωνικό τρόπο, το χαρακτηριστικό της μοντελοποίησης δεδομένων MongoDB για τα σχετικά δεδομένα που πρέπει να αποθηκευτούν σε ένα μόνο έγγραφο αξιοποιεί το μοντέλο εγγράφων που δεν απαιτεί συναλλαγές πολλαπλών εγγράφων. Αλλά οι προγραμματιστές θαυμάζουν την ευελιξία στη μοντελοποίηση των δεδομένων τους. Έτσι, υπάρχει η λειτουργία των συναλλαγών στο MongoDB.
Το Hevo Data, ένας αγωγός δεδομένων χωρίς κώδικα, μπορεί να μεταφέρει απρόσκοπτα δεδομένα από μια τεράστια θάλασσα 100+ πηγών όπως το MongoDB & Mongodb Atlas σε μια αποθήκη δεδομένων ή έναν προορισμό της επιλογής σας να απεικονιστεί σε ένα εργαλείο BI. Είναι μια αξιόπιστη, πλήρως αυτοματοποιημένη και ασφαλής υπηρεσία που doesn’Δεν απαιτούν να γράψετε οποιονδήποτε κωδικό!
Εάν χρησιμοποιείτε MongoDB ως σύστημα διαχείρισης βάσης δεδομένων NOSQL και αναζητώντας μια εναλλακτική λύση χωρίς να φουσκώνει στη χειροκίνητη ενσωμάτωση δεδομένων, τότε η HEVO μπορεί να αυτοματοποιήσει αβίαστα αυτό για εσάς. Hevo, με την ισχυρή ένταξή του με 100+ πηγές και εργαλεία BI (Συμπεριλαμβανομένων 40+ δωρεάν πηγών), σας επιτρέπει όχι μόνο να εξάγετε και να φορτώσετε δεδομένα, αλλά και να μετασχηματίσετε και να εμπλουτίσετε τα δεδομένα σας και να το κάνετε έτοιμο για ανάλυση σε ένα jiffy.
Θέλετε να πάρετε το Hevo για μια βόλτα? Εγγραφείτε για ένα Δωρεάν δοκιμή 14 ημερών και απλοποιήστε τη διαδικασία ενσωμάτωσης δεδομένων. Δείτε τα στοιχεία της τιμολόγησης για να κατανοήσετε ποιο σχέδιο πληροί όλες τις ανάγκες της επιχείρησής σας.
Πείτε μας για την εμπειρία σας για να μάθετε για το Συναλλαγή Java MongoDB! Μοιραστείτε τις σκέψεις σας μαζί μας στην παρακάτω ενότητα σχολίων.



