Springboot整合MongodB的時候,出現了一些了小問題,今天準備發篇博客,來溫習一下.Mongodb,在上一篇中,我講了Mongodb的安裝,今天我們來講講
如何實現CRUD,寫的不錯的話,記得點關注哦 !
一、在idea中搭建環境
新建項目
選擇需要的依賴進行選擇性的加入
添加依賴
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
實體類
package com.example.spirit.demo.model;
import org.springframework.data.mongodb.core.mapping.Document;
@Data
@Document(collection = "passenger")
public class Mongo {
private Integer id;
private Integer age;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Dao層
package com.example.spirit.dao;
import com.example.spirit.model.Mongo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
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.Component;
@Component
public class MongoDao {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 創建對象
*/
public void saveTest(Mongo mongod) {
mongoTemplate.save(test);
}
/**
* 根據用戶名查詢對象
* @return
*/
public Mongo findTestByName(String name) {
Query query=new Query(Criteria.where("name").is(name));
MongoTest mgt = mongoTemplate.findOne(query , Mongo.class);
return mgt;
}
/**
* 更新對象
*/
public void updateTest(Mongo test) {
Query query=new Query(Criteria.where("id").is(test.getId()));
Update update= new Update().set("age", test.getAge()).set("name", test.getName());
//更新查詢返回結果集的第一條
mongoTemplate.updateFirst(query,update,Mongo.class);
//更新查詢返回結果集的所有
// mongoTemplate.updateMulti(query,update,TestEntity.class);
}
/**
* 刪除對象
* @param id
- */
. public void deleteTestById(Integer id) {
Query query=new Query(Criteria.where("id").is(id));
mongoTemplate.remove(query,Mongo.class);
}
}
此處我用的是本地安裝的mongodb,所以沒有用戶名和密碼
applition.yml
spring:
data:
mongodb:
uri: mongodb://localhost:27017/test
``
Controller
```java
package com.example.spiritmark.controller;
import com.example.spiritmark.dao.MongoDao;
import com.example.spiritmark.model.Mongo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MongoController{
@Autowired
private MongotDao mtdao;
@GetMapping(value="/test1")
public void saveTest() throws Exception {
Mongo mgtest=new Mongo();
mgtest.setId(11);
mgtest.setAge(33);
mgtest.setName("ceshi");
mtdao.saveTest(mgtest);
}
@GetMapping(value="/test2")
public Mongo findTestByName(){
Mongo mgtest= mtdao.findTestByName("ceshi");
System.out.println("mgtest is "+mgtest);
return mgtest;
}
@GetMapping(value="/test3")
public void updateTest(){
Mongo mgtest=new Mongo ();
mgtest.setId(11);
mgtest.setAge(44);
mgtest.setName("ceshi2");
mtdao.updateTest(mgtest);
}
@GetMapping(value="/test4")
public void deleteTestById(){
mtdao.deleteTestById(11);
}
}
發送CRUD請求後在mongo庫中生成了對應的集合