环境:
操作系统:Win10
Idea:2020
导入pom.xml依赖
dependencys里添加这些依赖,lombok后面可能用到。
<!--mongo依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!--log4j依赖-->
<!--<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>-->
如果启动最后启动失败,可以尝试在build里添加依赖,不知道原理为何,反正添加了就没事了,而如果不使用log4j,我实测也有问题,在新项目里没问题,在原有的微服务项目中添加就有问题。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--lombok构建的依赖-->
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
文档的映射类
如果没添加lombok依赖的话,记得创建getter、setter、toString和无参构造和有参构造
package cn.hsl.mongodbdao.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
@Document("retailer")
//生成get、set、toString
@Data
//生成无参构造
@NoArgsConstructor
//生成有参构造
@AllArgsConstructor
public class MongoDBDocument {
private int id;
private String name;
private String age;
}
接口类
package cn.hsl.mongodbdao.dao;
import cn.hsl.mongodbdao.pojo.MongoDBDocument;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface MongoDAO extends MongoRepository<MongoDBDocument,Integer> {
}
测试
package cn.hsl.mongodbdao;
import cn.hsl.mongodbdao.dao.MongoDAO;
import cn.hsl.mongodbdao.pojo.MongoDBDocument;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Optional;
@SpringBootTest
class MongodbdaoApplicationTests {
static final int documentId = 1908030655;
@Autowired
private MongoDAO mongoDAO;
@Test
void contextLoads() {
}
//添加
@Test
void createDocument(){
MongoDBDocument mongoDBDocument = new MongoDBDocument(documentId,"何顺龙","21");
mongoDAO.save(mongoDBDocument);
}
//删除
@Test
void deleteDocument(){
mongoDAO.deleteById(documentId);
}
//修改
@Test
void updateDocument(){
//其实mongoDB不是仅能修改值,不能再添加键之类的了。
MongoDBDocument mongoDBDocument = new MongoDBDocument(documentId,"何顺龙2","212");
mongoDAO.save(mongoDBDocument);
}
//查询
@Test
void searchDocument(){
Optional<MongoDBDocument> byId = mongoDAO.findById(documentId);
System.out.println(byId);
}
}