天天看点

SpringBoot中使用MongoTemplate操作MongoDB数据库

作者:长颈鹿睡觉

导入MongoDB坐标

在SpringBoot项目的pom文件中导入MongoDB的starter。

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

配置数据库地址

在application.properties中配置MongoDB的连接地址。

spring.data.mongodb.uri=mongodb://localhost/test           

自动注入MongoTemplate对象

通过测试类测试数据库操作。

通过Spring容器自动注入MongoTemplate对象。

@Autowired
private MongoTemplate mongoTemplate;           

MongoTemplate提供了save、update、find、remove等方法进行MongoDB的增删改查操作。

SpringBoot中使用MongoTemplate操作MongoDB数据库

插入数据

使用MongoTemplate的save方法插入数据,参数值是对个对象。

通过实体类构建一个对象保存到数据库中。

Role role = new Role();
role.setRoleId("1");
role.setRoleName("admin");
mongoTemplate.save(role);           

执行测试用例。

SpringBoot中使用MongoTemplate操作MongoDB数据库

通过navicat查询数据库,看到根据实体类的名称自动创建了新的集合role,并将数据插入。

SpringBoot中使用MongoTemplate操作MongoDB数据库

查询数据

使用MongoTemplate的findAll方法查询集合数据,参数是实体类的类名。

List<Role> result = mongoTemplate.findAll(Role.class);
System.out.println(result);           

执行测试,成功查询出数据。

SpringBoot中使用MongoTemplate操作MongoDB数据库

完整代码

@SpringBootTest
public class MongoDBTest {
 @Autowired
 private MongoTemplate mongoTemplate;

 @Test
 void testDB(){
 Role role = new Role();
 role.setRoleId("1");
 role.setRoleName("admin");
 mongoTemplate.save(role);
 }

 @Test
 void testQuery(){
 List<Role> result = mongoTemplate.findAll(Role.class);
 System.out.println(result);
 }
}