SpringBoot實現mongoDB的CRUD
mongoDB是一個使用非常廣的非關係型資料庫,在springboot中,可以非常方便的實現CRUD操作。
1.pom配置
目前大多數專案都用maven進行依賴包管理,因此,本文也採用maven進行配置。pom需要增加如下依賴:
<!-- MongoDB --> org.springframework.boot spring-boot-starter <!-- junit test --> org.springframework.boot spring-boot-starter-data-mongodb <!-- lombok --> org.springframework.boot spring-boot-starter-test test org.projectlombok lombok 1.16.10 provided
主要的依賴包有三個:
spring-boot-starter 核心啟動包,spring-boot-starter-data-mongodb mongoDB的相關依賴包,spring-boot-starter-test junit單元測試包。
其他的包如 lombok 則是為了省略部分程式碼。
2.資料模型類
package com.dhb.domain;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.mapping.Document;import lombok.Data;@Document(collection = "users")@Datapublic class User { @Id private String id; private String name; private int age; public User(String name,int age){ this.name = name; this.age = age; } }
透過lombok的@Data註解,省略了get和set方法。
@Document 表示對映到mongoDB中的表。collection = "users" 透過collection進行指定。
@Id 對映mongoDB中的ID欄位。
3.cuid方法Repository
springBoot提供了一個MongoRepository介面,只需要繼承該介面即可。亦可自定義方法。
package com.dhb.domain;import org.springframework.data.mongodb.repository.MongoRepository;public interface UserMongoRepository extends MongoRepository{ User findByName(String name); }
4.junit單元測試
測試程式碼如下:
package com.dhb.test;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertNotNull;import static org.junit.Assert.assertNull;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.dhb.domain.User;import com.dhb.domain.UserMongoRepository;@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class UserMongoRepositoryTest { @Autowired private UserMongoRepository userMongoRepository; @Before public void setUp() throws Exception { User user1 = new User("user1", 19); User user2 = new User("user2", 20); // save product, verify has ID value after save assertNull(user1.getId()); assertNull(user2.getId());// null before save this.userMongoRepository.save(user1); this.userMongoRepository.save(user2); assertNotNull(user1.getId()); assertNotNull(user2.getId()); } @Test public void testFetchData() { /* Test data retrieval */ User userA = userMongoRepository.findByName("user1"); assertNotNull(userA); assertEquals(19, userA.getAge()); /* Get all products, list should only have two */ Iterableusers = userMongoRepository.findAll(); int count = 0; for (User p : users) { count++; } assertEquals(count, 2); } @Test public void testDataUpdate() { /* Test update */ User userB = userMongoRepository.findByName("user2"); userB.setAge(40); userMongoRepository.save(userB); User userC = userMongoRepository.findByName("user2"); assertNotNull(userC); assertEquals(40, userC.getAge()); } @After public void tearDown() throws Exception { this.userMongoRepository.deleteAll(); } }
執行結果:
執行結果
作者:冬天裡的懶喵
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/200/viewspace-2804429/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringBoot第十一篇:SpringBoot+MyBatis+Thymelaf實現CRUDSpring BootMyBatis
- SpringBoot整合Redis使用Restful風格實現CRUD功能Spring BootRedisREST
- IDEA SpringBoot-Mybatis-plus 實現增刪改查(CRUD)IdeaSpring BootMyBatis
- MongoDB 新手入門 - CRUDMongoDB
- SpringBoot+MongoDB實現物流訂單系統Spring BootMongoDB
- 07-SpringBoot+MyBatis+Spring 技術整合實現商品模組的CRUD操作Spring BootMyBatis
- MongoDB 整合SpringBoot實踐MongoDBSpring Boot
- ES6封裝MongoDB的CRUD封裝MongoDB
- SpringBoot整合MongoDB(實現一個簡單快取)Spring BootMongoDB快取
- SpringBoot實戰分析-MongoDB操作Spring BootMongoDB
- 建立一個SpringBoot專案,實現簡單的CRUD功能和分頁查詢Spring Boot
- 使用PreparedStatement實現CRUD操作
- MongoDB 4.X CRUD基本操作MongoDB
- 使用rails實現最簡單的CRUDAI
- 【MongoDB學習筆記】-使用 MongoDB 進行 CRUD 操作(下)MongoDB筆記
- 【MongoDB學習筆記】-使用 MongoDB 進行 CRUD 操作(上)MongoDB筆記
- Vue+Element UI實現CRUDVueUI
- Vue+Ant Design實現CRUDVue
- Spring Boot原始碼:使用MongoDB MongoTemplate公開REST在幾分鐘內實現CRUD功能Spring Boot原始碼MongoDBREST
- MongoDB changeStream 的 PHP 實現MongoDBPHP
- 使用go在mongodb中進行CRUD操作MongoDB
- 教程:如何在.NET中使用MongoDB以及基本的CRUD操作MongoDB
- 使用TS+Sequelize實現更簡潔的CRUD
- SpringBoot與mongodb的結合Spring BootMongoDB
- 使用Node+React實現簡單CRUDReact
- SpringBoot | SpringBoot 是如何實現日誌的?Spring Boot
- MongoDB 關係實現MongoDB
- maven非web專案整合mbatis實現CRUDMavenWebBAT
- MVC5使用Angular.Js實現CrudMVCAngularJS
- SpringBoot+Vue之表格的CRUD與匯入匯出Spring BootVue
- SpringBoot 整合 Spring Data Mongodb 操作 MongoDB 詳解Spring BootMongoDB
- springboot(十一):Spring boot中mongodb的使用Spring BootMongoDB
- Springboot Starter的核心實現原理Spring Boot
- Flink CDC MongoDB Connector 的實現原理和使用實踐MongoDB
- MongoDB 4.0 事務實現解析MongoDB
- 0115 springboot template方式操作mongodbSpring BootMongoDB
- 如何構建SpringBoot MongoDb RestfulApiSpring BootMongoDBRESTAPI
- SpringBoot 框架MongoDB 簡單的查詢方式Spring Boot框架MongoDB