日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Data MongoDB教程

發布時間:2023/12/3 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Data MongoDB教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在當今世界,盡快啟動并運行應用程序非常重要。 該應用程序還應該易于開發和維護。

Spring是這樣的框架,它提供了與許多不同框架的集成的簡便性,這使得使用Spring開發應用程序變得容易。 一種這樣的集成是Spring與MongoDB的集成。

1.簡介

在本教程中,我們將討論最著名的Java框架“ Spring”和最著名的NoSQL數據庫“ MongoDB”的結合。 MongoDB是一個基于文檔的NoSQL數據庫,它以JSON之類的結構存儲數據。

Spring提供了SpringData和MongoDB的集成,以方便兩者的集成,并為開發人員提供便利,而無需為編寫用于插入,更新和刪除的多個查詢而煩惱。

以下是SpringData MongoDB項目提供的一些功能:

  • SpringData允許同時使用@Configuration類和基于XML的配置。
  • Spring的數據訪問異常層次結構用于異常的轉換。
  • Java的POJO和MongoDB的文檔之間的集成映射。
  • MongoTemplate類,可以輕松使用常見的MongoDB操作。
  • 除了MongoTemplate , MongoReader和MongoWriter類還用于低級別的映射。
  • 了解任何技術的最佳方法是實踐,我們現在將做同樣的事情。

    現在讓我們做一個簡單的程序來詳細了解Spring Data MongoDB。

    2.技術和工具

    讓我們看看用于構建程序的技術和工具。

  • Eclispe Oxygen.2釋放(4.7.2)
  • Java –版本9.0.4
  • 搖籃– 4.6
  • MongoDB服務器– 3.6
  • MongoCompass – 3.6
  • SpringDataMongoDB – 2.0.5-RELEASE
  • 3.項目結構

    我們的項目結構如下圖所示。

    SpringDataMongoDB的項目結構

    Gradle項目結構將具有上面顯示的項目結構。 如果使用pom.xml,則項目結構將略有不同。

    4.計劃

    作為該計劃的一部分,我們將嘗試實現以下目標。

  • 將對象保存到MongoDB
  • 更新MongoDB中的對象
  • 從MongoDB中刪除對象
  • 從MongoDB獲取所有對象
  • 現在讓我們了解程序的所有組件。 首先,我們將從程序依賴關系和程序所需的jar開始。

    4.1搖籃

    我們正在使用Gradle作為該程序的一部分進行構建。 build.gradle文件將如下所示。

    build.gradle

    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' }

    在上面的build.gradle文件中, apply plugin: 'java'告訴我們需要設置的插件。 對我們來說,它是Java插件。
    repositories{}讓我們知道應該從中提取依賴關系的存儲庫。 我們選擇了mavenCentral拉依賴罐。 我們還可以使用jcenter提取相應的依賴罐。
    dependencies {}標簽用于提供應為項目提取的必要的jar文件詳細信息。

    4.2 MongoDB的配置

    為了使用MongoDB配置,我們需要實現AbstractMongoConfiguration類。 MongoConfig.java類將如下所示。 我們在這里使用注釋而不是xml。 但是,甚至XML也可以用于設置配置。

    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 {@Overridepublic String getDatabaseName() {return "local";}@Override@Beanpublic MongoClient mongoClient() {return new MongoClient("127.0.0.1");} }

    @Configuration用于將類MongoConfig.java定義為配置類。 @Bean定義MongoClient Bean。

    4.3模型類別

    現在我們來看看模型類。 我們使用student.java作為模型類,其中包含Student的屬性,例如名稱和年齡。 Student.java模型類用于將POJO映射到MongoDB集合。

    學生模型班

    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;}@Idprivate 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;}@Overridepublic String toString() {return String.format("Student[id=%s, studentName='%s', studentAge="+studentAge+"]",id, studentName);} }

    @Document定義文檔。 屬性collection定義了集合,該集合將用于與集合進行映射。 在集合中提到的所有屬性都應該在POJO類中可用。 @Id定義集合的ID。

    4.4 CRUD操作

    為了執行諸如保存數據,更新數據,刪除數據以及從MongoDB中獲取數據之類的CRUD操作,我們將使用MongoOperations 。

    現在讓我們看一下MongoDBPOperations.java類。 此類包含CRUD操作的所有方法的實現。

    MongoDBPOperations類,將用于執行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 studentQuery searchStudent = new Query(Criteria.where(critera).is(value));// find student based on the queryStudent 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 studentQuery 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!! ");} }

    Java程序最重要的類是包含main方法的類。

    4.5應用類別

    包含main方法的主要類是Application.java類。 我們將使用此類從MongoDBPOperations類中調用方法。

    調用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 AnnotationApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class);MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");MongoDBPOperations ops = new MongoDBPOperations();Student student = new Student("John", 15);//save studentops.saveStudent(mongoOperation, student);// get student based on search criteriaops.searchStudent(mongoOperation, "studentName", "John");//update student based on criteriaops.updateStudent(mongoOperation, "StudentName", "John", "studentAge", "18");// get student based on search criteriaops.searchStudent(mongoOperation, "studentName", "John");// get all the studentsops.getAllStudent(mongoOperation);//remove student based on criteriaops.removeStudent(mongoOperation, "studentName", "John");// get all the studentsops.getAllStudent(mongoOperation);}}

    讓我們看一下在Application.java類中執行的分步操作:

  • 我們正在創建ApplicationContext 。 這是由于需要加載配置。
  • 另外,創建MongoOperations對象以加載MongoTemplate bean。
  • MongoDBOperations對象提供對方法的訪問,以執行不同的MongoOperation方法。
  • 此外,創建一個名稱為John且年齡為15的Student對象。
  • 我們正在調用saveMethod的MongoDBOperations ,我們將傳遞必要的參數以將對象保存在數據庫中。
  • 類似地,我們MongoDBOperations調用MongoDBOperations不同方法。
  • 4.6運行程序

    最后,讓我們現在將程序作為Java應用程序運行。 右鍵單擊Application.java-> Run as-> Java Application。

    以下結果將出現在控制臺上。

    運行程序后的控制臺輸出

    現在讓我們注釋一下刪除對象的命令。 MongoDB將成功存儲數據。

    此外,讓我們注釋一下刪除對象的行,如下所示。

    注釋刪除方法后的應用程序類

    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 AnnotationApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class);MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");MongoDBPOperations ops = new MongoDBPOperations();Student student = new Student("John", 15);//save studentops.saveStudent(mongoOperation, student);// get student based on search criteriaops.searchStudent(mongoOperation, "studentName", "John");//update student based on criteriaops.updateStudent(mongoOperation, "StudentName", "John", "studentAge", "18");// get student based on search criteriaops.searchStudent(mongoOperation, "studentName", "John");// get all the studentsops.getAllStudent(mongoOperation);//remove student based on criteria//ops.removeStudent(mongoOperation, "studentName", "John");// get all the students//ops.getAllStudent(mongoOperation);}}

    由于程序更改,讓我們重新運行該程序。 以下內容將出現在控制臺上。

    注釋刪除命令時控制臺

    由于注釋了刪除命令,MongoDB將存儲數據,因此將如下所示。

    保存和更新命令后的MongoDB輸出

    5.下載Eclipse項目

    這是Spring Data MongoDB的一個示例。

    下載
    您可以在此處下載此示例的完整源代碼: SpringDataMongoDBTutorial.zip

    翻譯自: https://www.javacodegeeks.com/2018/03/spring-data-mongodb-tutorial.html

    總結

    以上是生活随笔為你收集整理的Spring Data MongoDB教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。