分享

Spring Boot MongoDB

 印度阿三17 2019-11-29

 

 

项目结构

 

下面直接进入代码操作

创建一个Springboot项目,pom.xml引入MongoDB依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

 

接下来配置MongoDB数据源,此处我用的是本地安装的MongoDB,所以没有用户名和密码,有用户名和密码的格式是:  spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test,其中name是用户名,pass是密码

如果要配置多个数据库,则中间用 "," 分割,例如 spring.data.mongodb.uri=mongodb://192.168.1.1:20000,192.168.1.2:20000,192.168.252.12:20000/test

application.properties:

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

 

User.class

package com.zyu.entity;

/**
 * @program: SpringBoot-mongo
 * @description:
 * @author: zyu
 * @create: 2019-11-28 16:06
 */
public class User {

    private String id;

    private String name;

    private Integer age;

    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 Integer getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("User{");
        sb.append("id='").append(id).append('\'');
        sb.append(", name='").append(name).append('\'');
        sb.append(", age=").append(age);
        sb.append('}');
        return sb.toString();
    }
}

 

UserDao.class

package com.zyu.dao;

import com.zyu.entity.User;
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;

import java.util.List;

/**
 * @program: SpringBoot-mongo
 * @description:
 * @author: zyu
 * @create: 2019-11-29 16:05
 */
@Component
public class UserDao {

    @Autowired
    private MongoTemplate mongoTemplate;


    /**
     * 创建对象
     * @param user
     */
    public User saveUser(User user) {
        User save = mongoTemplate.save(user);
        return save;
    }


    /**
     * 更新对象
     * @param user
     */
    public void updateUser(User user) {
        Query query = new Query(Criteria.where("id").is(user.getId()));
        Update update = new Update().set("name", user.getName()).set("age", user.getAge());
        mongoTemplate.updateFirst(query, update, User.class);
    }


    /**
     * 根据用户名查询对象
     * @param name
     * @return
     */
    public User findUserByName(String name) {
        Query query = new Query(Criteria.where("name").is(name));
        User user = mongoTemplate.findOne(query, User.class);
        return user;
    }


    /**
     * 查询所有对象
     * @return
     */
    public List<User> findUserList() {
        List<User> all = mongoTemplate.findAll(User.class);
        return all;
    }


    /**
     * 删除对象
     * @param id
     */
    public void deleteUserById(String id) {
        Query query = new Query(Criteria.where("id").is(id));
        mongoTemplate.remove(query, User.class);
    }
}

 

HomeController.class

package com.zyu.controller;

import com.zyu.dao.UserDao;
import com.zyu.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @program: SpringBoot-mongo
 * @description:
 * @author: zyu
 * @create: 2019-11-28 16:08
 */
@RestController
public class HomeController {

    @Autowired
    private UserDao userDao;

    @GetMapping("/findList")
    public List<User> findUserList() {
        List<User> userList = userDao.findUserList();
        return userList;
    }


    @GetMapping("/findByName")
    public User findUserByName(@RequestParam String name) {
        User userByName = userDao.findUserByName(name);
        return userByName;
    }


    @GetMapping("/save")
    public User saveUser(@RequestParam String name, @RequestParam Integer age) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        return userDao.saveUser(user);
    }


    @GetMapping("/update")
    public String updateUser(@RequestParam String id, @RequestParam String name, @RequestParam Integer age) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        user.setId(id);
        userDao.updateUser(user);
        return "Success";
    }

}

 

下面我们启动程序进行测试

1. 新增: http://localhost:8080/save?name=张三&age=20

可以看到新增成功

 

 

 

2. 查询:http://localhost:8080/findList

 

 

 

可以看到数据插入成功

3. 修改:http://localhost:8080/update?name=张三&age=22&id=5de0dbee2a21b94db4fc367b

 

其他接口大家自己去测试吧

 

 

 

 

 

来源:https://www./content-2-580251.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多