springboot整合mongodb
1.mongodb的安裝和簡(jiǎn)介
1.1簡(jiǎn)介
MongoDB 是由C++語(yǔ)言編寫(xiě)的,是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(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é)省篇幅,好多注釋和空行都去掉了,大家見(jiàn)諒!
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層的編寫(xiě)
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層的編寫(xiě)
這里要熟悉mongodb的一些常規(guī)操作方法,多用多練習(xí)即可?。。?!
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層的編寫(xiě)
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í)體類層的編寫(xiě)(兩個(gè)類放一起了,你們記得分開(kāi))
package com.lengmo.entity;
import lombok.Data;
import javax.persistence.Id;
@Data
//之所以沒(méi)有像 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ù)時(shí)出現(xiàn)的_class字段
這篇文章主要給大家介紹了如何去掉保存mongodb數(shù)據(jù)時(shí)出現(xiàn)的_class字段,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02
基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類型和$type操作符詳解
下面小編就為大家?guī)?lái)一篇基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類型和$type操作符詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
CentOS 7系統(tǒng)下SELinux阻止MongoDB啟動(dòng)的問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于CentOS 7系統(tǒng)下SELinux阻止MongoDB啟動(dòng)問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
剖析后OpLog訂閱MongoDB的數(shù)據(jù)變更就沒(méi)那么難了
這篇文章主要為介紹了OpLog訂閱MongoDB的數(shù)據(jù)變更,希望讀完本文后讓你對(duì)OpLog訂閱MongoDB的數(shù)據(jù)變更不在頭疼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02
遷移sqlserver數(shù)據(jù)到MongoDb的方法
這篇文章主要介紹了遷移sqlserver數(shù)據(jù)到MongoDb的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
mongodb中隨機(jī)獲取1條記錄的實(shí)現(xiàn)方法
這篇文章運(yùn)用實(shí)例給大家演示了如何在mongodb中隨機(jī)獲取1條記錄,文中介紹的很詳細(xì),有需要的朋友們可以參考借鑒。下面來(lái)一起看看吧。2016-09-09
MongoDB的基本特性與內(nèi)部構(gòu)造的講解
今天小編就為大家分享一篇關(guān)于MongoDB的基本特性與內(nèi)部構(gòu)造的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03

