zoukankan      html  css  js  c++  java
  • 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>
    View Code

    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

    完毕!

  • 相关阅读:
    修改Nginx的header伪装服务器
    解除与设置计算机锁定
    Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法
    js正则表达式教程
    Eclipse窗口显示:独立、嵌入式
    [置顶] wzplayer for android NEON版本(添加插图)
    买了一块s5pv210 的开发板
    [置顶] android player ,wzplayer for android NEON版本(添加插图)
    make 输出 log 文件
    android player ,wzplayer for android NEON版本(添加插图)
  • 原文地址:https://www.cnblogs.com/ywjfx/p/12593155.html
Copyright © 2011-2022 走看看