Memperkenalkan MongoDB Data Musim Semi

Hari baik untuk semua!

Aliran baru "Pengembang di Kerangka Kerja Musim Semi" dimulai, "tiba-tiba", kursus ini ternyata sangat populer di kalangan siswa baru dan mereka yang telah belajar dari kami di Jawa dan perusahaan "reguler". Jadi jika itu menarik, datanglah ke kami untuk pelajaran terbuka , dan, tentu saja, bagikan materi yang menarik tentang topik tersebut.

Pegas Terjemahan Terjemahan Tutorial MongoDB
Diposting oleh Anand Kumar

Ayo pergi!

Di dunia sekarang ini, sangat penting untuk membuat dan menjalankan aplikasi sesegera mungkin. Selain itu, aplikasi harus mudah dikembangkan dan mudah dirawat.

Spring hanyalah kerangka kerja yang memberikan kemudahan integrasi dengan banyak kerangka kerja lain yang berbeda, yang menyederhanakan pengembangan aplikasi menggunakan Spring. Salah satu integrasi tersebut adalah integrasi Spring dengan MongoDB.



1. Pendahuluan

Dalam pelajaran ini, kita akan membahas kombinasi kerangka Java Spring paling terkenal dan sistem manajemen basis data (DBMS) MongoDB yang paling terkenal. MongoDB adalah DBMS NoSQL berorientasi dokumen yang menyimpan data dalam format seperti JSON.
Spring Data dan integrasi MongoDB disediakan oleh Spring untuk memfasilitasi interaksi baik kenyamanan dan pengembang, menghilangkan kebutuhan untuk menulis banyak pertanyaan untuk memasukkan, memperbarui, dan menghapus.

Berikut ini adalah beberapa fitur yang disediakan oleh proyek Spring Data MongoDB:

  1. Spring Data memungkinkan Anda untuk menggunakan kelas @Configuration dan konfigurasi XML.
  2. Hierarki pengecualian Akses Data digunakan untuk menerjemahkan pengecualian.
  3. Pemetaan terintegrasi antara POJOs Java dan dokumen MongoDB.
  4. Kelas MongoTemplate, yang menyederhanakan penggunaan operasi MongoDB umum.
  5. Selain MongoTemplate, Anda bisa menggunakan kelas MongoReader dan MongoWriter untuk rendering tingkat rendah.

Cara terbaik untuk memahami teknologi apa pun adalah dengan menggunakannya dalam praktik, dan itulah yang akan kita lakukan sekarang.

Mari kita buat program sederhana untuk mempelajari lebih lanjut tentang Spring Data MongoDB.

2. Teknologi dan alat

Mari kita lihat teknologi dan alat yang akan kita gunakan untuk membuat program.

  1. Eclispe Oxygen.2 Rilis (4.7.2)
  2. Java - versi 9.0.4
  3. Gradle - 4.6
  4. Server MongoDB - 3.6
  5. MongoCompass - 3.6
  6. SpringDataMongoDB - 2.0.5-RELEASE

3. Struktur proyek

Struktur proyek kami akan terlihat seperti yang ditunjukkan di bawah ini.


Struktur Proyek untuk Data Musim Semi MongoDB

Proyek gradle akan memiliki struktur yang ditunjukkan di atas. Dalam kasus pom.xml, struktur proyek akan sedikit berbeda.

4. Program

Sebagai bagian dari program ini, kami akan mencoba menyelesaikan tugas di bawah ini.

  1. Menyimpan Objek di MongoDB
  2. Memperbarui objek di MongoDB
  3. Menghapus objek dari MongoDB
  4. Mengambil Semua Objek dari MongoDB

Sekarang mari kita menganalisis semua komponen program. Pertama-tama, kita akan mulai dengan dependensi dan file jar yang diperlukan untuk program ini.

4.1 gradle

Kami menggunakan Gradle untuk membangun sebagai bagian dari program. File build.gradle akan terlihat seperti yang ditunjukkan di bawah ini.

 apply plugin: 'java' repositories { mavenCentral() } dependencies { compile group: 'org.springframework.data', name: 'spring-data-mongodb', version: '2.0.5.RELEASE' implementation 'com.google.guava:guava:23.0' testImplementation 'junit:junit:4.12' } 

Di file build.gradle , baris apply plugin: 'java' memberi tahu plug-in mana yang harus dipasang. Dalam kasus kami, ini adalah plugin Java.

Tag repositories{} melaporkan repositori dari mana dependensi harus ditarik. Kami memilih mavenCentral untuk menarik file jar yang tergantung. Kita juga bisa menggunakan jcenter untuk menarik file jar yang terkait.

Tag dependencies {} digunakan untuk menyediakan data yang diperlukan tentang file jar yang perlu ditarik untuk proyek.

4.2 Konfigurasi untuk MongoDB

Untuk menggunakan konfigurasi MongoDB, kita perlu mengimplementasikan kelas AbstractMongoConfiguration . Kelas MongoConfig.java akan terlihat seperti yang ditunjukkan di bawah ini. Di sini kami menggunakan anotasi, bukan xml. Tetapi XML juga dapat digunakan untuk mengkonfigurasi konfigurasi.

Implementasi kelas MongoConfig.java

 package com.tutorial.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import com.mongodb.MongoClient; @Configuration public class MongoConfig extends AbstractMongoConfiguration { @Override public String getDatabaseName() { return "local"; } @Override @Bean public MongoClient mongoClient() { return new MongoClient("127.0.0.1"); } } 

@Configuration digunakan untuk mendefinisikan kelas MongoConfig.java sebagai kelas konfigurasi. @Bean mendefinisikan MongoClient .

4.3 Kelas model

Sekarang perhatikan kelas model. Kami menggunakan student.java sebagai kelas model yang berisi atribut untuk Siswa, seperti Nama dan Usia. Kelas model Student.java digunakan untuk memetakan POJO ke koleksi MongoDB.

Kelas Model Siswa

 package com.tutorial.model; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "students") public class Student { public Student(String studentName, int studentAge) { this.studentName = studentName; this.studentAge = studentAge; } @Id private String id; String studentName; int studentAge; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getStudentAge() { return studentAge; } public void setStudentAge(int studentAge) { this.studentAge = studentAge; } @Override public String toString() { return String.format( "Student[id=%s, studentName='%s', studentAge="+studentAge+"]", id, studentName); } } 

@Document mendefinisikan dokumen. Properti collection menentukan koleksi yang akan digunakan untuk mencocokkan koleksi. Semua atribut yang disebut sebagai bagian dari koleksi harus dapat diakses di kelas POJO. @Id mendefinisikan pengidentifikasi koleksi.

4.4 Operasi CRUD

Untuk melakukan operasi CRUD (kependekan untuk membuat, membaca, memperbarui, menghapus), seperti menyimpan, memperbarui, menghapus, dan mengambil data dari MongoDB, kami akan menggunakan MongoOperations .

Sekarang mari kita lihat kelas MongoDBPOperations.java . Kelas ini berisi implementasi semua metode operasi CRUD.

Kelas MongoDBPOperations yang akan digunakan untuk melakukan operasi CRUD

 package com.tutorial; import java.util.List; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import com.tutorial.model.Student; public class MongoDBPOperations { public void saveStudent(MongoOperations mongoOperation, Student student) { mongoOperation.save(student); System.out.println("Student saved successfully"); // student object got created with id. System.out.println("student : " + student); } public void searchStudent(MongoOperations mongoOperation, String critera,String value) { // query to search student Query searchStudent = new Query(Criteria.where(critera).is(value)); // find student based on the query Student resultStudent = mongoOperation.findOne(searchStudent, Student.class); System.out.println("Student found!!"); System.out.println("Student details: " + resultStudent); } public void updateStudent(MongoOperations mongoOperation, String critera,String value, String updateCriteria, String updateValue) { // query to search student Query searchStudent = new Query(Criteria.where(critera).is(value)); mongoOperation.updateFirst(searchStudent, Update.update(updateCriteria, updateValue), Student.class); System.out.println("Student got updated successfully"); } public void getAllStudent(MongoOperations mongoOperation) { List listStudent = mongoOperation.findAll(Student.class); for(Student student:listStudent) { System.out.println("Student = " + student); } } public void removeStudent(MongoOperations mongoOperation, String critera,String value) { Query searchStudent = new Query(Criteria.where(critera).is(value)); mongoOperation.remove(searchStudent, Student.class); System.out.println("Student removed successfully!! "); } } 

Kelas yang paling penting dari program Java adalah kelas yang berisi metode main .

4.5 Kelas Aplikasi

Kelas utama yang berisi metode utama adalah kelas Application.java . Kami akan menggunakan kelas ini untuk memanggil metode dari kelas MongoDBPOperations .

Kelas aplikasi untuk memanggil metode kelas MongoDBPOperations

 package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) { // For Annotation ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class); MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate"); MongoDBPOperations ops = new MongoDBPOperations(); Student student = new Student("John", 15); //save student ops.saveStudent(mongoOperation, student); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); //update student based on criteria ops.updateStudent(mongoOperation, "StudentName", "John", "studentAge", "18"); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); // get all the students ops.getAllStudent(mongoOperation); //remove student based on criteria ops.removeStudent(mongoOperation, "studentName", "John"); // get all the students ops.getAllStudent(mongoOperation); } } 

Mari kita lihat langkah demi langkah pada operasi yang dilakukan di kelas Application.java :

  1. Kami membuat ApplicationContext . Ini karena perlunya mengunduh konfigurasi.
  2. Selain itu, objek MongoOperations untuk memuat komponen MongoTemplate .
  3. Objek MongoDBOperations menyediakan akses ke metode untuk melakukan berbagai operasi MongoOperation .
  4. Selain itu, objek Siswa dibuat dengan nama John dan usia 15.
  5. Kami memanggil metode saveMethod dari kelas saveMethod , dan meneruskan parameter yang diperlukan untuk menyimpan objek dalam database.
  6. Dengan cara yang sama, kami memanggil berbagai metode MongoDBOperations satu per satu.

4.6 Memulai program

Akhirnya, sekarang mari kita jalankan program sebagai aplikasi Java. Klik kanan pada Application.java -> Run as -> Java Application.

Hasil berikut akan muncul di konsol.


Keluaran konsol setelah memulai program

Sekarang mari kita komentari perintah untuk menghapus objek. MongoDB akan berhasil menyimpan data.

Juga, mari kita komentari baris untuk menghapus objek, seperti yang ditunjukkan di bawah ini.

Aplikasi kelas setelah mengomentari metode penghapusan

 package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) { // For Annotation ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class); MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate"); MongoDBPOperations ops = new MongoDBPOperations(); Student student = new Student("John", 15); //save student ops.saveStudent(mongoOperation, student); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); //update student based on criteria ops.updateStudent(mongoOperation, "StudentName", "John", "studentAge", "18"); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); // get all the students ops.getAllStudent(mongoOperation); //remove student based on criteria //ops.removeStudent(mongoOperation, "studentName", "John"); // get all the students //ops.getAllStudent(mongoOperation); } } 

Setelah membuat perubahan pada program, mari kita mulai kembali. Berikut ini muncul di konsol.


Konsol saat operasi penghapusan dikomentari

Sebagai hasil dari mengomentari perintah delete, MongoDB akan menyimpan data dan karenanya akan terlihat seperti yang ditunjukkan di bawah ini.


Output MongoDB setelah perintah simpan dan perbarui

5. Unduh proyek Eclipse

Anda dapat mengunduh seluruh kode sumber untuk contoh ini di sini.

AKHIR

Seperti biasa, kami menunggu pertanyaan dan komentar di sini atau pergi ke Yuri untuk pelajaran terbuka di mana Anda tidak hanya dapat mendengarkan, tetapi juga bertanya-tanya.

Source: https://habr.com/ru/post/id430520/


All Articles