springboot+MongoDB 增删改查

 

MongoDB在windows上安装的时候,左下角的勾选不要勾,会卡很久。。

 

pom.xml  


        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        

        
            org.springframework.boot
            spring-boot-devtools
            true
        

        
        
            org.springframework.boot
            spring-boot-starter-data-mongodb
        

        
            com.alibaba
            fastjson
            1.2.41
        

    

 

application.properties  :

spring.data.mongodb.uri=mongodb://localhost:27017/db

 

新建 user.java

 

package com.example.demo.bean;

import org.springframework.data.annotation.Id;

/**
 * @Date 2020/8/7 17:03
 * @Created by wbb
 * @Used for
 */
public class user {

    @Id
    private String id;
    private String name;
    private String gender;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
}

 

控制层依赖注入

@Resource
private MongoTemplate mongoTemplate;

 

新增:

@RequestMapping("/insert")
    public String insert(){
        user u=new user();
        u.setId("789");
        u.setName("wbb");
        u.setGender("男");
        mongoTemplate.insert(u);
        return "/test/test";
    }

 

批量插入:

@RequestMapping("/insertAll")
    public String insertAll(){
        List newList=new ArrayList<>();
        for(int i=0;i<30;i++){
            user u=new user();
            u.setId(UUID.randomUUID().toString());
            u.setName("wbb");
            u.setGender("男");
            newList.add(u);
        }
        mongoTemplate.insertAll(newList);
        return "/test/test";
    }

 

查询 返回一条数据:

@RequestMapping("/findone")
    public String findone(){
        Query query=new Query(Criteria.where("id").is("123"));
        user u=mongoTemplate.findOne(query,user.class);
        System.out.println(JSON.toJSONString(u));
        return "/test/test";
    }

 

查询返回多条数据:

 @RequestMapping("/findAll")
    public String findAll(){
        Query query=new Query(Criteria.where("name").is("王冰冰"));
        List u=mongoTemplate.find(query,user.class);
        System.out.println(JSON.toJSONString(u));
        return "/test/test";
    }

 

修改:

@RequestMapping("/update")
    public String update(){
        Query query=new Query(Criteria.where("id").is("123"));
        Update update= new Update().set("name", "东北吴彦祖").set("gender","老男人");
        //更新查询返回结果集的第一条
        mongoTemplate.updateFirst(query,update,user.class);
        //更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query,update,TestEntity.class);
        return "/test/test";
    }

 

删除:

@RequestMapping("/delete")
    public String delete(){
        Query query=new Query(Criteria.where("id").is("123"));
        mongoTemplate.remove(query,user.class);
        return "/test/test";
    }

 

分页查询 :

@RequestMapping("/findPage")
    public String findPage(){
        //利用工具类拼装分页信息
        SpringbootMongoDBPageable pageable = new SpringbootMongoDBPageable();
        MongoDBPageModel pm=new MongoDBPageModel();
        pm.setPagesize(3); // 每页 3条
        pm.setPagenumber(2); // 第 2 页

        List orders = new ArrayList<>();  //排序信息
        orders.add(new Sort.Order(Sort.Direction.DESC, "id"));// 按照 id 倒序排列
        pm.setSort(Sort.by(orders));

        pageable.setPage(pm);
        //拼装查询信息
        Query query = new Query();
        Criteria criteria = new Criteria();
        query.addCriteria(criteria.where("name").is("wbb"));  // 条件 name= wbb
        //查询总记录数
        List list = mongoTemplate.find(query.with(pageable), user.class);
        System.out.println(JSON.toJSONString(list));
        return "/test/test";
    }

 

分页需要的工具类:

参考地址: https://blog.csdn.net/weixin_39804646/article/details/82155898#commentBox

import org.springframework.data.domain.Sort;

import java.io.Serializable;

/**
 * @Auther:
 * @Date: 2018/8/22 08:48
 * @Description:
 * @Version: 1.0
 */
public class MongoDBPageModel implements Serializable {
    /**
     * @Fields: serialVersionUID
     * @Todo: TODO
     */
    private static final long serialVersionUID = 1L;
    // 当前页
    private Integer pagenumber = 1;
    // 当前页面条数
    private Integer pagesize = 10;
    // 排序条件
    private Sort sort;
    public Integer getPagenumber() {
        return pagenumber;
    }
    public void setPagenumber(Integer pagenumber) {
        this.pagenumber = pagenumber;
    }
    public Integer getPagesize() {
        return pagesize;
    }
    public void setPagesize(Integer pagesize) {
        this.pagesize = pagesize;
    }
    public Sort getSort() {
        return sort;
    }
    public void setSort(Sort sort) {
        this.sort = sort;
    }

}

 


import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

import java.io.Serializable;
/**
 * @Auther:
 * @Date: 2018/8/22 10:19
 * @Description:
 * @Version: 1.0
 */
public class SpringbootMongoDBPageable implements Serializable,Pageable{
    /**
     * @Fields: serialVersionUID
     * @Todo: TODO
     */
    private static final long serialVersionUID = 1L;

    MongoDBPageModel page;

    public MongoDBPageModel getPage() {
        return page;
    }

    public void setPage(MongoDBPageModel page) {
        this.page = page;
    }

    @Override
    public Pageable first() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getOffset() {
        // TODO Auto-generated method stub
        return (page.getPagenumber() - 1) * page.getPagesize();
    }

    @Override
    public int getPageNumber() {
        // TODO Auto-generated method stub
        return page.getPagenumber();
    }

    @Override
    public int getPageSize() {
        // TODO Auto-generated method stub
        return page.getPagesize();
    }


    @Override
    public boolean hasPrevious() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public Pageable next() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Pageable previousOrFirst() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Sort getSort() {
        // TODO Auto-generated method stub
        return page.getSort();
    }
}

 

 

你可能感兴趣的:(java,增删改查)