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: 8081mybatis-plus: typeAliasesPackage: com.vue.demo.entity mapperLocations: classpath:mapper/*.xmlspring: 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 */@Servicepublic 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
完毕!