springboot整合mongodb
1.mongodb的安裝和簡(jiǎn)介
1.1簡(jiǎn)介
MongoDB 是由C++語(yǔ)言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB 文檔類似于 JSON 對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
1.2安裝
網(wǎng)上安裝的教程也比較多,我在這里就不再多說(shuō)了。直接提供一下我自己的db安裝包和可視化安裝包,這里的版本可能有點(diǎn)舊,需要新的包可以自行去網(wǎng)上下載!
數(shù)據(jù)庫(kù)鏈接:https://pan.baidu.com/s/1Pu7ijrzmzkYEp-jRgHENbA 提取碼:7cz2
可視化工具鏈接:https://pan.baidu.com/s/1ZBe_F5Eab1KYk6GAVono6w 提取碼:9g55
1.3配置環(huán)境變量和檢查安裝情況
這里的配置類似于jdk的配置,不再多說(shuō)!查看安裝和啟動(dòng)數(shù)據(jù)庫(kù)
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ī)操作方法,多用多練習(xí)即可?。。。?/p>
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實(shí)體類層的編寫(兩個(gè)類放一起了,你們記得分開)
package com.lengmo.entity; import lombok.Data; import javax.persistence.Id; @Data //之所以沒有像 mysql那樣需要@table標(biāo)簽去標(biāo)注我們的表名與實(shí)體類的對(duì)應(yīng)關(guān)系。是因?yàn)?mongodb默認(rèn)類名即與表名對(duì)應(yīng)。 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; }
至此所有的整合就完成了,接下來(lái)就是去驗(yàn)證各個(gè)方法的使用了!
到此這篇關(guān)于springboot整合mongodb的文章就介紹到這了,更多相關(guān)springboot整合mongodb內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mongodb 數(shù)據(jù)類型及Mongoose常用CURD
MongoDB 是一個(gè)開源的 NoSQL 數(shù)據(jù)庫(kù),相比 MySQL 那樣的關(guān)系型數(shù)據(jù)庫(kù),它更為輕巧、靈活,非常適合在數(shù)據(jù)規(guī)模很大、事務(wù)性不強(qiáng)的場(chǎng)合下使用,本文給大家介紹Mongodb 數(shù)據(jù)類型及Mongoose常用CURD,感興趣的朋友一起學(xué)習(xí)吧2016-01-01MongoDB db.serverStatus()輸出內(nèi)容中文注釋
這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個(gè)版本的中文注釋來(lái)講解,需要的朋友可以參考下2014-08-08MongoDB按時(shí)間分組操作實(shí)戰(zhàn)
MongoDB支持使用聚合操作來(lái)統(tǒng)計(jì)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MongoDB按時(shí)間分組操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05MongoDB數(shù)據(jù)庫(kù)部署環(huán)境準(zhǔn)備及使用介紹
這篇文章主要為大家介紹了MongoDB數(shù)據(jù)庫(kù)部署環(huán)境準(zhǔn)備以及基本的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03使用centos系統(tǒng)中的crontab命令對(duì)mongodb定時(shí)備份恢復(fù)
編寫centos腳本使用crontab命令對(duì)mongodb定時(shí)執(zhí)行備份與恢復(fù)操作,并刪除指定天數(shù)前的備份2018-03-03MongoDB入門教程之細(xì)說(shuō)MongoDB數(shù)據(jù)庫(kù)的增刪查改操作
這篇文章主要介紹了MongoDB入門教程之細(xì)說(shuō)MongoDB數(shù)據(jù)庫(kù)的增刪查改操作,本文環(huán)境是windows,所以以圖片形式講解,需要的朋友可以參考下2014-08-08詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法
因?yàn)镸ongoDB屬于NoSQL,所以集合collection相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的表table,這里我們就來(lái)詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法:2016-06-06mongodb 添加用戶及權(quán)限設(shè)置詳解
我知道的關(guān)系型數(shù)據(jù)庫(kù)都是有權(quán)限控制的,什么用戶能訪問什么庫(kù),什么表,什么用戶可以插入,更新,而有的用戶只有讀取權(quán)限。2014-07-07【MongoDB for Java】Java操作MongoDB數(shù)據(jù)庫(kù)
本篇文章現(xiàn)在我們就用Java來(lái)操作MongoDB的數(shù)據(jù)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-12-12