springboot整合mongodb
1.mongodb的安裝和簡(jiǎn)介
1.1簡(jiǎn)介
MongoDB 是由C++語言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫系統(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)上安裝的教程也比較多,我在這里就不再多說了。直接提供一下我自己的db安裝包和可視化安裝包,這里的版本可能有點(diǎn)舊,需要新的包可以自行去網(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的配置,不再多說!查看安裝和啟動(dòng)數(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ī)操作方法,多用多練習(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層的編寫
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;
}至此所有的整合就完成了,接下來就是去驗(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ù)庫,相比 MySQL 那樣的關(guān)系型數(shù)據(jù)庫,它更為輕巧、靈活,非常適合在數(shù)據(jù)規(guī)模很大、事務(wù)性不強(qiáng)的場(chǎng)合下使用,本文給大家介紹Mongodb 數(shù)據(jù)類型及Mongoose常用CURD,感興趣的朋友一起學(xué)習(xí)吧2016-01-01
MongoDB db.serverStatus()輸出內(nèi)容中文注釋
這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個(gè)版本的中文注釋來講解,需要的朋友可以參考下2014-08-08
MongoDB按時(shí)間分組操作實(shí)戰(zhàn)
MongoDB支持使用聚合操作來統(tǒng)計(jì)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MongoDB按時(shí)間分組操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
MongoDB數(shù)據(jù)庫部署環(huán)境準(zhǔn)備及使用介紹
這篇文章主要為大家介紹了MongoDB數(shù)據(jù)庫部署環(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-03
MongoDB入門教程之細(xì)說MongoDB數(shù)據(jù)庫的增刪查改操作
這篇文章主要介紹了MongoDB入門教程之細(xì)說MongoDB數(shù)據(jù)庫的增刪查改操作,本文環(huán)境是windows,所以以圖片形式講解,需要的朋友可以參考下2014-08-08
詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法
因?yàn)镸ongoDB屬于NoSQL,所以集合collection相當(dāng)于關(guān)系型數(shù)據(jù)庫中的表table,這里我們就來詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法:2016-06-06
mongodb 添加用戶及權(quán)限設(shè)置詳解
我知道的關(guān)系型數(shù)據(jù)庫都是有權(quán)限控制的,什么用戶能訪問什么庫,什么表,什么用戶可以插入,更新,而有的用戶只有讀取權(quán)限。2014-07-07
【MongoDB for Java】Java操作MongoDB數(shù)據(jù)庫
本篇文章現(xiàn)在我們就用Java來操作MongoDB的數(shù)據(jù)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12

