Springboot集成MongoDB 实现CRUD

导读:本篇文章讲解 Springboot集成MongoDB 实现CRUD,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

  • mongodb的使用
  • 源码地址下载
  • 首先讲解一下 mongodb 在数据库的简单语法使用

SQL语法

//查询全部
db.user.find()

//根据年龄查询----使用方法{}大括号里面 字段:属性
db.user.find({age:11})

//根据年龄查询---- 第一个大括号是根据字段查、第二个大括号是只返回name 对应的属性
db.user.find({age:11},{name:"Back"})

//根据两个条件查询
db.user.find({age:11,name:"Back"})

//查询集合的第一条数据
db.user.findOne()  

//gt 是大于
db.user.find({age:{$gt:11}}) 

//lt 是小于
db.user.find({age:{$lt:20}})

//gte  大于等于
db.user.find({age:{$gte:10}})

//lte  小于等于
db.user.find({age:{$lte:11}})

//ne 不等于
db.user.find({age:{$ne:20}})

//分页  --查询从0条开始,查询10条,skip()方法默认参数为 0 ,表示跳过的条数
db.user.find().skip(0).limit(2)

//排序  ----按照年龄升序排序,为-1的话表示降序排序
db.user.find().sort({age:-1})  

//查询存在birthday字段的数据、 比如 这个字段空指属性的都不显示、只有值的才显示
db.user.find({birthday:{$exists:1}})
首先要创建一个名为:application.properties 配置文件
如下:
server.port= 8081  #工程的端口
spring.data.mongodb.host=192.168.74.110   #mongodb的 ip
pring.data.mongodb.port=27017              #mongodb的 端口
spring.data.mongodb.database=test             #mongodb的 数据库
logging.level.org.springframework.data.mongodb.core=debug  #mongodb的需要打印SQL日志的记录配置

> 实体类创建

package com.entity;

import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

@Document(collection="user")
public class User {

     private String userId;

     private String name;

     private String uclass;

     private String email;

     private Date birthday;

     private int age;

     private int dataStatus;

     public User() {
     }

     public String getName() {
         return name;
     }

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

     public String getUserId() {
         return userId;
     }

     public void setUserId(String userId) {
         this.userId = userId;
     }

     public String getUclass() {
         return uclass;
     }

     public void setUclass(String uclass) {
         this.uclass = uclass;
     }

     public String getEmail() {
         return email;
     }

     public void setEmail(String email) {
         this.email = email;
     }

     public Date getBirthday() {
         return birthday;
     }

     public void setBirthday(Date birthday) {
         this.birthday = birthday;
     }

     public int getAge() {
         return age;
     }

     public void setAge(int age) {
         this.age = age;
     }

     public int getDataStatus() {
         return dataStatus;
     }

     public void setDataStatus(int dataStatus) {
         this.dataStatus = dataStatus;
     }

    @Override
    public String toString() {
        return "User{" +
                "userId='" + userId + '\'' +
                ", name='" + name + '\'' +
                ", uclass='" + uclass + '\'' +
                ", email='" + email + '\'' +
                ", birthday=" + birthday +
                ", age=" + age +
                ", dataStatus=" + dataStatus +
                '}';
    }
}

数据库结构图如下数据结构


> 控制器创建

package com.controller;

import com.entity.User;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
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.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * MongoDB 增删查改
 *
 * @ClassName HuangXiangXiang
 * @Date 2019/10/28 22:53
 * @Version V1.0
 **/

@RestController
public class MongoDB {

    @Resource
    private MongoTemplate mongoTemplate;

    /**
     * 新增对象
     *
     * @param user
     * @return
     */
    @PostMapping("/InsertUser")
    public User InsertUser(@RequestBody User user) {
        mongoTemplate.save(user);
        System.out.println("新增成功!");
        return user;
    }


    /**
     * 删除对象
     */

    @DeleteMapping("/DeleteUser/{userId}")
    public String DeleteUser(@PathVariable("userId") String userId) {
        Query userId1 = Query.query(Criteria.where("userId").is(userId));
        DeleteResult remove = mongoTemplate.remove(userId1, User.class);
        System.out.println(remove);
        return "删除成功!";
    }


    /**
     * 条件 查询
     *
     * @return
     */
    @GetMapping("/SelectUser")
    public List<User> SelectUser() {
        Query userId = Query.query(Criteria.where("userId").is("015"));
        List<User> users = mongoTemplate.find(userId, User.class);
        System.out.println("条件" + users);
        return users;
    }


    /**
     * 列表查询
     */
    @GetMapping("/SelectUserList")
    public List<User> SelectUserList() {
        List<User> all = mongoTemplate.findAll(User.class);
        System.out.println("列表" + all);
        return null;
    }


    /**
     * 修改对象
     */

    @PostMapping("/UpdateUser")
    public UpdateResult UpdateUser(@RequestBody User user) {

        Query userId = Query.query(Criteria.where("userId").is(user.getUserId()));
        Update update = new Update();
        update.set("name", user.getName());
        update.set("uclass", user.getUclass());
        update.set("email", user.getEmail());
        update.set("birthday", user.getBirthday());
        update.set("age", user.getAge());
        update.set("dataStatus", user.getDataStatus());

        UpdateResult updateResult = mongoTemplate.updateFirst(userId, update, User.class);
        System.out.println(updateResult);
        return updateResult;
    }


}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15550.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!