spring boot 中使用mongoDB (个人学习记录)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: spring boot 中使用mongoDB (个人学习记录)

1.先引入pom

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


2.配置文件application.yml

spring:
  data:
    mongodb:
      uri: mongodb://IP*******:27017/库名


3.创建entity实体类

import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.io.Serializable;
@Data
@Document(collection = "user")
public class User implements Serializable {
    private static final Long serialVersionUID = 1l;
    @Field("id")
    private String id;
    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 getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getAdd() {
        return add;
    }
    public void setAdd(String add) {
        this.add = add;
    }
    @Field("name")
    private String name;
    @Field("phone")
    private String phone;
    @Field("add")
    private String add;
}


4.service层

import java.util.HashMap;
public interface IUserService {
    HashMap<Object, Object> queryList();
    User findUserByUserName(String name);
    long updateUser(User user);
    boolean deleteUserById(String id);
    String saveUser(User user);
}


5.实现impl

import com.mongodb.client.result.UpdateResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 cn.javaguide.springbootkafka01sendobjects.service.IUserService;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
    private static Logger logger = LoggerFactory.getLogger(UserContrller.class);
    @Resource
    private MongoTemplate mongoTemplate;
    /**
     * 时间 2022年3月1日
     * 查询user表所有集合
     *
     * @return
     */
    @Override
    public HashMap<Object, Object> queryList() {
        HashMap<Object, Object> map = new HashMap<>();
        Query query = new Query();
        List<User> all = mongoTemplate.findAll(User.class);
//        List<AlarmRtTime> all1 = mongoTemplate.findAll(AlarmRtTime.class);
        long count = mongoTemplate.count(query, User.class);
//        boolean empty = all.isEmpty();
//        Assert.isTrue(empty==false,"***********************查询信息为空***********************");
//        Assert.isNull(all,"***********************查询信息为空***********************");
        User user = new User();
        if (all.isEmpty()) {
//        user.setId("001");
//        user.setName("tom");
//        user.setPhone("1234568910");
            System.out.println("***********************查询信息为空***********************");
//            all.add(user);
        }
        map.put("user table info :", all);
        map.put("user table count :", count);
//        map.put("user table AlarmRtTime :", all1);
        return map;
    }
    @Override
    public String saveUser(User user) {
        mongoTemplate.save(user);
        return "添加成功";
    }
    /**
     * 根据name查询mongodb信息
     * date 2022年3月1日 15点19分
     *
     * @param name
     * @return
     */
    @Override
    public User findUserByUserName(String name) {
        Query query = new Query(Criteria.where("name").is(name));
        User user = mongoTemplate.findOne(query, User.class);
//        Assert.isNull(user,"***********************查询信息为空***********************");
        return user;
    }
    /**
     * 根据id,修改用户信息
     * 时间 2022年3月1日
     *
     * @param user
     */
    @Override
    public long updateUser(User user) {
        System.out.println(user);
        Query query = new Query(Criteria.where("id").is(user.getId()));
        Update update = new Update().set("name", user.getName()).set("phone", user.getPhone()).set("add", user.getAdd());
        //更新查询返回结果集的第一条
        UpdateResult result = mongoTemplate.updateFirst(query, update, User.class);
        //更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query,update,UserEntity.class);
        if (result != null) {
            return result.getMatchedCount();
        } else {
            return 0;
        }
    }
    /**
     * 根据id删除对象
     * 时间 2022年3月1日
     * @param id
     */
    @Override
    public boolean deleteUserById(String id) {
        Query query=new Query(Criteria.where("id").is(id));
        User user = mongoTemplate.findOne(query, User.class);
        System.out.println(user);
//        Assert.notNull(user,"找不到对应id数据");
        if (user==null){
            System.out.println("找不到对应id数据");
            return false;
        }
        mongoTemplate.remove(query,User.class);
        return true;
    }
}


6.接口controller

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.javaguide.springbootkafka01sendobjects.service.IUserService;
import javax.annotation.Resource;
import java.util.HashMap;
@RestController
@RequestMapping("/user")
public class UserContrller {
    private static Logger logger = LoggerFactory.getLogger(UserContrller.class);
    @Resource
    private IUserService userService;
    @PostMapping("/getInfo")
    private HashMap<Object, Object> getAllInfo() {
        return userService.queryList();
    }
    @PostMapping("/findUserByUserName")
    private User findUserByUserName(String name) {
        return userService.findUserByUserName(name);
    }
    @PostMapping("/updateUser")
    private long updateUser(@RequestBody User user) {
        return userService.updateUser(user);
    }
    @PostMapping("/deleteUserById")
    private boolean deleteUserById(String id) {
        return userService.deleteUserById(id);
    }
    @PostMapping("/saveUser")
    private String saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }
}


7.接口测试


--添加

image.png


--查询全部

image.png

image.png


****测试不一一截图了

建议配置下账号密码,开放性数据库容易被攻击,数据不安全。


相关文章
|
23天前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
8月前
|
监控 Java 应用服务中间件
微服务——SpringBoot使用归纳——为什么学习Spring Boot
本文主要探讨为什么学习Spring Boot。从Spring官方定位来看,Spring Boot旨在快速启动和运行项目,简化配置与编码。其优点包括:1) 良好的基因,继承了Spring框架的优点;2) 简化编码,通过starter依赖减少手动配置;3) 简化配置,采用Java Config方式替代繁琐的XML配置;4) 简化部署,内嵌Tomcat支持一键式启动;5) 简化监控,提供运行期性能参数获取功能。此外,从未来发展趋势看,微服务架构逐渐成为主流,而Spring Boot作为官方推荐技术,与Spring Cloud配合使用,将成为未来发展的重要方向。
249 0
微服务——SpringBoot使用归纳——为什么学习Spring Boot
|
5月前
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
591 2
|
7月前
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
168 20
|
12月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
247 9
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
158 9
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
103 1
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
599 2
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
1939 1
|
12月前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
233 0

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务