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、appicaiton.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以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。