天天看點

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);
 }
}