Java springboot Mongodb增删改查代码实例

1、添加依赖

复制代码

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

完整pom.xm文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.7.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.vue</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo</name>
  <description>Demo project for Spring Boot</description>

  <properties>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.49</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.26</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.20</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>2.2.0</version>
    </dependency>

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.8.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.8.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-mongodb</artifactId>
      <version>2.1.6.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

2、applicaiton.yml

server:
 port: 8081

mybatis-plus:
   typeAliasesPackage: com.vue.demo.entity
   mapperLocations: classpath:mapper/*.xml
spring:
 datasource:
  url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
  username: root
  password: yang156122
  driver-class-name: com.mysql.jdbc.Driver
  # 使用druid数据源
  type: com.alibaba.druid.pool.DruidDataSource
 redis:
  #redis单机配置
  host: localhost
  port: 6379
  # 选择redis的数据库的分库
  database: 5
  #redis连接池配置
  jedis:
   pool:
    max-idle: 10
    min-idle: 5
    max-active: 100
    max-wait: 3000
    timeout: 6005
 data:
  mongodb:
   uri: mongodb://localhost:27017/userArticle

3、Mongodb增删改查

package com.vue.demo.service.serviceimpl;

import com.alibaba.fastjson.JSONObject;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import com.vue.demo.entity.UserArticle;
import com.vue.demo.service.UserArticleService;
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;

/**
 * @author yangwj
 * @date 2020/3/28 11:07
 */

@Service
public class UserArticleServiceImpl implements UserArticleService {
  @Autowired
  private MongoTemplate mongoTemplate;

  @Override
  public UserArticle getArticleByTitle(String title) {
    Query query = new Query();
    query.addCriteria(Criteria.where("articleTitle").is(title));
    UserArticle article = mongoTemplate.findOne(query, UserArticle.class);
    return article;
  }

  @Override
  public UserArticle insertArticle(UserArticle userArticle) {
    List<UserArticle> userArticleList = mongoTemplate.findAll(UserArticle.class);
    if (userArticleList.isEmpty()) {
      userArticle.setId(1);
    } else {
      userArticle.setId(userArticleList.size() + 1);
    }
    UserArticle article = mongoTemplate.save(userArticle);
    return article;
  }

  @Override
  public List<UserArticle> getAllArticles() {
    List<UserArticle> userArticles = mongoTemplate.findAll(UserArticle.class);
    return userArticles;
  }

  @Override
  public DeleteResult delByName(String name) {
    Query query = new Query();
    query.addCriteria(Criteria.where("articleTitle").is(name));
    DeleteResult result =mongoTemplate.remove(query,UserArticle.class);
    return result;
  }

  @Override
  public UpdateResult updateReadNumByTitle(String title) {
    Query query = new Query();
    query.addCriteria(Criteria.where("articleTitle").is(title));
    UserArticle article = mongoTemplate.findOne(query, UserArticle.class);
    Integer readNum = article.getReadNum() == null? 1: article.getReadNum()+1;
    article.setReadNum(readNum);
    Update update = new Update();
    update.set("readNum",article.getReadNum());
    UpdateResult result = mongoTemplate.updateFirst(query,update,UserArticle.class);
    return result;
  }

  @Override
  public UpdateResult addUserComment(String title, String comment) {
    JSONObject jsonObject = new JSONObject();
    Query query = new Query();
    query.addCriteria(Criteria.where("articleTitle").is(title));
    UserArticle article = mongoTemplate.findOne(query, UserArticle.class);
    if(article.getComment() == null){
      jsonObject.put(title,comment);
    }else {
      jsonObject = (JSONObject) JSONObject.parse(article.getComment());
      jsonObject.put(title,comment);
    }
    Integer commentNum = article.getCommentNum() == null ? 1:article.getCommentNum()+1;
    Update update = new Update();
    update.set("comment",jsonObject.toJSONString());
    update.set("commentNum",commentNum);
    UpdateResult result = mongoTemplate.updateFirst(query,update,UserArticle.class);
    return result;
  }
}

github地址:https://github.com/812406210/vue-demo.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Spring Boot中使用MongoDB的连接池配置的方法

    因为今天开发遇到了性能问题,可能与MongoDB的连接有关,所以稍稍深入看了一下,正好搜到原来有人写过这篇相关的内容,所以转载过来.回头有时间可以写个扩展到SpringForAll里,主体思路还是一样的.感谢这位美女程序媛的文章! 说明 Spring Boot中通过依赖 spring-boot-starter-data-mongodb ,来实现 spring-data-mongodb 的自动配置. 但是默认情况下,Spring Boot 中,并没有像使用MySQL或者Redis一样,提供了连接池

  • Spring Boot中使用MongoDB数据库的方法

    MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自"humongous",是一种开源的文档数据库──NoSql数据库的一种.NoSql,全称是 Not Only Sql,指的是非关系型的数据库. 特点 MongoDB数据库的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: * 面向集合存储,易存储对象类型的数据. * 模式自由. * 支持动态查询. * 支持完全索引,包含内部对象

  • springboot+mongodb 实现按日期分组分页查询功能

    具体代码如下所示: WalletDetailsResp walletDetailsResp = new WalletDetailsResp(); List<WalletDetailsResp.WalletDetail> list = new ArrayList<>(); WalletDetailsResp.PageInfoBean pageInfoBean = new WalletDetailsResp.PageInfoBean(); List<Integer> typ

  • Springboot整合MongoDB进行CRUD操作的两种方式(实例代码详解)

    1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合MongoDB的两种方法:MongoRepository和MongoTemplate. 代码结构如下: 2 项目准备 2.1 启动MongoDB实例 为了方便,使用Docker来启动MongoDB,详细指导文档请参考:基于Docker的MongoDB实现授权访问的方法,这里不再赘述. 2.2 引入相关依赖

  • springboot-mongodb的多数据源配置的方法步骤

    在日常工作中,我们可能需要连接多个MongoDB数据源,比如用户库user,日志库log.本章我们来记录连接多个数据源的步骤,以两个数据源为例,多个数据源类推. 1.pom.xml中引入mongodb的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </d

  • springboot Mongodb的集成与使用实例详解

    说说springboot与大叔lind.ddd的渊源 Mongodb在Lind.DDD中被二次封装过(大叔的.net和.net core),将它当成是一种仓储来使用,对于开发人员来说只公开curd几个标准的接口即可,而在springboot框架里,它与大叔lind有些类似之处,同样是被二次封装了,开发人员只需要关注自己的业务即可,而标准的curd操作完成由springboot帮助我们来实现,一般地,我们会设计一个与实体对象的接口仓储,让它去继承mongo的标准接口,然后在springboot的依

  • SpringBoot MongoDB 索引冲突分析及解决方法

    一.背景 spring-data-mongo 实现了基于 MongoDB 的 ORM-Mapping 能力, 通过一些简单的注解.Query封装以及工具类,就可以通过对象操作来实现集合.文档的增删改查: 在 SpringBoot 体系中,spring-data-mongo 是 MongoDB Java 工具库的不二之选. 二.问题产生 在一次项目问题的追踪中,发现SpringBoot 应用启动失败,报错信息如下: Error creating bean with name 'mongoTempl

  • Java springboot Mongodb增删改查代码实例

    1.添加依赖 复制代码 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>2.1.6.RELEASE</version> </dependency> 完整pom.xm文件 <?xml version="

  • java 数据库连接与增删改查操作实例详解

    本文实例讲述了java 数据库连接与增删改查操作.分享给大家供大家参考,具体如下: 1.设置数据库的基本配置信息 package mysql; //数据库配置资源连接 public final class DbConfig { //数据库资源 指定所使用的数据库类型 地址 端口 数据库名称 编码格式 public final static String dbUrl = "jdbc:mysql://localhost:3306/database_name?useUnicode=true&c

  • C#访问SQLServer增删改查代码实例

    一个专门实现访问sql server数据库增删改查的操作代码,分享给大家,具体内容如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data; usi

  • java使用DOM对XML文档进行增删改查操作实例代码

    本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示. 源代码: package com.zc.homeWork18; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.tr

  • Java编程通过list接口实现数据的增删改查代码示例

    List接口常用的实现ArrayList. 常用方法:add(Object obj)  增加一个元素                      add(int index,Object obj) 在指定索引位置添加元素                      remove(int index) 删除指定位置的元素                      remove(Objiect)  从列表中删除元素                      set(index,Object) 修改指定位

  • IntelliJ Idea SpringBoot 数据库增删改查实例详解

    SpringBoot 是 SpringMVC 的升级,对于编码.配置.部署和监控,更加简单 微服务 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务.一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议. Spring 为 微服务提供了一整套的组件-SpringClound , SpirngBoot 就是该基础. 第一个SpringBoot程序 这里使用的开发软件是IntelliJ Idea,和Eclipse

  • 从vue基础开始创建一个简单的增删改查的实例代码(推荐)

    1.安装vue-cli    cnpm install vue-cli -g  --执行全局安装 2.创建一个webpack的基础项目:命令:vue init webpack myproject; 以下是项目的目录结构及说明 build是webpack配置 build.js       // 生产环境构建代码 check-versions.js // 检查node&npm等版本 utils.js          // 构建配置公用工具 vue-loader.conf.js // vue加载器

  • hibernate通过session实现增删改查操作实例解析

    今天学习了一下如何通过hibernate来实现对数据库的增删改查,下面来简单介绍一下: 首先创建个Student类: package com.hibernate.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.T

  • Spring MVC实现mysql数据库增删改查完整实例

    最近刚学了springmvc框架,感觉确实方便了不少,减少了大量的冗余代码.就自己做了个小项目练练手,这是个初级的springmvc应用的项目,没有用到mybatis,项目功能还算完善,实现了基本的增删改查的功能. 项目环境: -系统:win10 -开发环境:eclipseOxygenReleaseCandidate3(4.7) -jdk版本:java1.8(121) -mysql:5.7 -spring:4.0 -tomcat:8.5 用到的技术: springmvcspringjspjdbc

  • mybatis使用xml进行增删改查代码解析

    MyBatis是支持普通sql查询.存储过程和高级映射的持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装. MyBatis可以使用 简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects 普通的Java对象)映射成数据库中的记录. 每一个Mybatis应用程序都以一个sqlSessionFactory对象的实例为核心. sqlSessionFactory对象的实例可以通过sqlSessionFa

随机推荐