springboot整合mongodb
1.mongodb的安裝和簡介
1.1簡介
MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。在高負載的情況下,添加更多的節(jié)點,可以保證服務器性能。MongoDB 旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。MongoDB 將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
1.2安裝
網(wǎng)上安裝的教程也比較多,我在這里就不再多說了。直接提供一下我自己的db安裝包和可視化安裝包,這里的版本可能有點舊,需要新的包可以自行去網(wǎng)上下載!
數(shù)據(jù)庫鏈接:https://pan.baidu.com/s/1Pu7ijrzmzkYEp-jRgHENbA 提取碼:7cz2
可視化工具鏈接:https://pan.baidu.com/s/1ZBe_F5Eab1KYk6GAVono6w 提取碼:9g55
1.3配置環(huán)境變量和檢查安裝情況
這里的配置類似于jdk的配置,不再多說!查看安裝和啟動數(shù)據(jù)庫
2.springboot集成mongodb
為了節(jié)省篇幅,好多注釋和空行都去掉了,大家見諒!
2.1pom文件中maven的引入
<!-- mongodb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
2.2properties文件配置
#################mongodb################ #spring.data.mongodb.uri=mongodb://username:password@localhost:27017/test spring.data.mongodb.uri=mongodb://localhost:27017/springboot
2.3dao層的編寫
package com.lengmo.dao; import com.lengmo.entity.Student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; import java.util.List; @Component public class MongoDbDao { @Autowired private MongoTemplate mongoTemplate; public void save(Student s) { mongoTemplate.save(s); } public Student get(Query query) { return mongoTemplate.findOne(query,Student.class); } public List<Student> findAll() { return mongoTemplate.findAll(Student.class); } public void update(Query query, Update update) { mongoTemplate.updateMulti(query,update,Student.class); } public void delete(Query query) { mongoTemplate.remove(query,Student.class); } }
2.4service層的編寫
這里要熟悉mongodb的一些常規(guī)操作方法,多用多練習即可!?。?!
package com.lengmo.service; import com.lengmo.dao.MongoDbDao; import com.lengmo.entity.Hobbies; import com.lengmo.entity.Student; import org.springframework.beans.factory.annotation.Autowired; 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 org.springframework.stereotype.Service; import java.util.List; @Service public class MongoDbService { @Autowired private MongoDbDao mongoDbDao; public void save() { Student s=new Student(); s.setName("lis"); s.setAge(17); s.setSex(1); s.setHeight(182); Hobbies h=new Hobbies(); h.setHname("swing"); s.setHobbies(h); mongoDbDao.save(s); } public Student get() { //and查詢 /* Criteria criteriaName=Criteria.where("name").is("lisi"); Criteria criteriaAage=Criteria.where("age").is(17); Criteria andCriteria = new Criteria(); andCriteria.andOperator(criteriaName,criteriaAage); Query query=new Query(andCriteria);*/ //or查詢 Criteria criteriaName=Criteria.where("name").is("lisi"); Criteria criteriaAage=Criteria.where("age").gt(16); Criteria orCriteria = new Criteria(); orCriteria.orOperator(criteriaName,criteriaAage); Query query=new Query(orCriteria); return mongoDbDao.get(query); } public List<Student> findAll() { return mongoDbDao.findAll(); } public void update() { Query query=new Query(Criteria.where("name").is("zhangsan")); Update update=new Update(); update.set("age",30); update.set("height",188); update.set("hobbies.hname","basketball"); mongoDbDao.update(query,update); } public void delete() { Query query=new Query(Criteria.where("name").is("zhangsan")); mongoDbDao.delete(query); } }
2.5conreoller層的編寫
package com.lengmo.controller; import com.lengmo.entity.Student; import com.lengmo.service.MongoDbService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/mongodb") public class MongoDbController { @Autowired private MongoDbService mongoDbService; @RequestMapping("/save") public void save(){ mongoDbService.save(); } @RequestMapping("/get") public Student get(){ return mongoDbService.get(); } @RequestMapping("/findAll") public List<Student> findAll(){ return mongoDbService.findAll(); } @RequestMapping("/update") public void update(){ mongoDbService.update(); } @RequestMapping("/delete") public void delete(){ mongoDbService.delete(); } }
2.6實體類層的編寫(兩個類放一起了,你們記得分開)
package com.lengmo.entity; import lombok.Data; import javax.persistence.Id; @Data //之所以沒有像 mysql那樣需要@table標簽去標注我們的表名與實體類的對應關系。是因為 mongodb默認類名即與表名對應。 public class Student{ @Id private String id; private String name; private Integer age; private Integer sex; private Integer height; private Hobbies hobbies; } package com.lengmo.entity; import lombok.Data; @Data public class Hobbies { private String hname; }
至此所有的整合就完成了,接下來就是去驗證各個方法的使用了!
到此這篇關于springboot整合mongodb的文章就介紹到這了,更多相關springboot整合mongodb內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mongodb 數(shù)據(jù)類型及Mongoose常用CURD
MongoDB 是一個開源的 NoSQL 數(shù)據(jù)庫,相比 MySQL 那樣的關系型數(shù)據(jù)庫,它更為輕巧、靈活,非常適合在數(shù)據(jù)規(guī)模很大、事務性不強的場合下使用,本文給大家介紹Mongodb 數(shù)據(jù)類型及Mongoose常用CURD,感興趣的朋友一起學習吧2016-01-01MongoDB db.serverStatus()輸出內(nèi)容中文注釋
這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個版本的中文注釋來講解,需要的朋友可以參考下2014-08-08MongoDB數(shù)據(jù)庫部署環(huán)境準備及使用介紹
這篇文章主要為大家介紹了MongoDB數(shù)據(jù)庫部署環(huán)境準備以及基本的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03使用centos系統(tǒng)中的crontab命令對mongodb定時備份恢復
編寫centos腳本使用crontab命令對mongodb定時執(zhí)行備份與恢復操作,并刪除指定天數(shù)前的備份2018-03-03MongoDB入門教程之細說MongoDB數(shù)據(jù)庫的增刪查改操作
這篇文章主要介紹了MongoDB入門教程之細說MongoDB數(shù)據(jù)庫的增刪查改操作,本文環(huán)境是windows,所以以圖片形式講解,需要的朋友可以參考下2014-08-08詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法
因為MongoDB屬于NoSQL,所以集合collection相當于關系型數(shù)據(jù)庫中的表table,這里我們就來詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法:2016-06-06【MongoDB for Java】Java操作MongoDB數(shù)據(jù)庫
本篇文章現(xiàn)在我們就用Java來操作MongoDB的數(shù)據(jù)。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12