Springboot项目整合Mongodb数据库

Mongodb在Springboot中的使用步骤:

  1. 创建一个springboot项目;
    https://blog.csdn.net/Z_Vivian/article/details/89398469
  2. 在pom.xml中添加maven依赖
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
  3. 配置application.properties的Mongodb连接池
    spring.application.name=mongodb
    spring.data.mongodb.host=123.207.231.***
    spring.data.mongodb.port=27017
    spring.data.mongodb.database=local
  4. 创建实体类
    package com.zzx.mongodb.entoty;
    
    public class MongoEntity {
        private String name;
        private String age;
        private String sex;
        private String money;
    
        @Override
        public String toString() {
            return "MongoEntity{" +
                    "name='" + name + '\'' +
                    ", age='" + age + '\'' +
                    ", sex='" + sex + '\'' +
                    ", money='" + money + '\'' +
                    '}';
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAge() {
            return age;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public String getMoney() {
            return money;
        }
    
        public void setMoney(String money) {
            this.money = money;
        }
    }
    
    5.创建service类
    	import com.zzx.mongodb.entoty.MongoEntity;
    	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.Service;
    	
    	
    	import java.util.List;
    	
    	@Service
    	public class MongoService {
    	    @Autowired
    	    MongoTemplate template;
    	    public Object save(MongoEntity entity){
    	        return template.save(entity);
    	    }
    	
    	    public List<MongoEntity> all(){
    	        return template.findAll(MongoEntity.class);
    	    }
    	
    	    public MongoEntity one(String age){
    	        Query query=new Query(Criteria.where("age").is(age));
    	        return template.findOne(query,MongoEntity.class);
    	    }
    	
    	    public Object del(String age){
    	        Query query=new Query(Criteria.where("age").is(age));
    	        return template.remove(query,MongoEntity.class);
    	
    	    }
    	
    	    public Object update(MongoEntity entity){
    	        Query query=new Query(Criteria.where("name").is("lqq"));
    	        Update update=new Update().set("age",entity.getAge()).set("name",entity.getName()).set("sex",entity.getSex());
    	        return template.updateMulti(query,update,MongoEntity.class);
    	    }
    	}
    6.创建controller类
    import com.zzx.mongodb.entoty.MongoEntity;
    import com.zzx.mongodb.service.MongoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    public class MongoController {
    
        @Autowired
        MongoService service;
    
        @GetMapping("/save")
        public Object save(MongoEntity entity){
            Object code=service.save(entity);
            return code;
        }
        @GetMapping("/all")
        public List<MongoEntity> all(){
           return service.all();
        }
        @GetMapping("/one")
        public MongoEntity one(String age){
            return service.one(age);
        }
        @GetMapping("/del")
        public Object del(String age){
            return service.del(age);
        }
        @GetMapping("/update")
        public Object update(MongoEntity entity){
            return service.update(entity);
        }
    }
    
    7.启动测试浏览器 地址栏输入:http://localhost:8080/save?name=zzx&age=23&sex=male&money=8419
    在这里插入图片描述
    这样其实就已经大功告成了,但是最后可以使用抽象泛型封装dao类,用起来更加灵活。
    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 java.util.List;
    
    public abstract class MongodbDao<T> {
    
        protected abstract Class<T> getEntityClass();
    
        @Autowired
        private MongoTemplate template;
    
        public Object save(T t){
            return this.template.save(t);
        }
    
        public List<T> all(){
            return this.template.findAll(this.getEntityClass());
        }
    
        public T one(String id){
            Query query=new Query(Criteria.where("name").is(id));
            return this.template.findOne(query,this.getEntityClass());
        }
        //....
    }
    使用时创建派生类
    	import com.zzx.mongodb.entoty.MongoEntity;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public class ExMongodbDao extends MongodbDao<MongoEntity> {
        @Override
        protected Class getEntityClass() {
            return MongoEntity.class;
        }
    }
    controller类
    import com.zzx.mongodb.dao.ExMongodbDao;
    import com.zzx.mongodb.entoty.MongoEntity;
    import com.zzx.mongodb.service.MongoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    public class MongoController {
    
        @Autowired
        private MongoService service;
        @Autowired
        private ExMongodbDao dao;
    
        @GetMapping("/save")
        public Object save(MongoEntity entity){
            Object code=service.save(entity);
            return code;
        }
        @GetMapping("/all")
        public List<MongoEntity> all(){
           return dao.all();
        }
        @GetMapping("/one")
        public MongoEntity one(String age){
            return dao.one(age);
        }
        @GetMapping("/del")
        public Object del(String age){
            return service.del(age);
        }
    
        @GetMapping("/update")
        public Object update(MongoEntity entity){
            return service.update(entity);
        }
    
    }
    
    这样用起来更灵活更方便

猜你喜欢

转载自blog.csdn.net/Z_Vivian/article/details/89520708