Java SpringBoot MongoPlus 使用MyBatisPlus的方式,優雅的操作MongoDB
- 介紹
- 特性
- 安裝
- 新建SpringBoot工程
- 引入依賴
- 配置文件
- 使用
- 新建實體類
- 創建Service
- 測試類進行測試
- 新增方法
- 查詢方法
- 官方網站
- 獲取本項目案例代碼
介紹

Mongo-Plus(簡稱 MP)是一個 MongoDB 的操作工具,可和現有mongoDB框架結合使用,為簡化開發、提高效率而生。
特性
- 無侵入:只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑
- 損耗小:啟動即會自動注入基本 CURD,性能基本無損耗,直接面向對象操作
- 強大的 CRUD 操作:通用 Service,僅僅通過少量配置即可實現單表大部分 CRUD 操作,更有強大的條件構造器,滿足各類使用需求
- 支持 Lambda 形式調用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
- 支持主鍵自動生成:支持多達 5 種主鍵策略(內含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
- 支持自定義全局通用操作:支持全局通用方法注入
- 支持無實體類情況下的操作
- 支持動態數據源
- 支持邏輯刪除、防止全集合更新和刪除、自動填充等等功能
安裝
新建SpringBoot工程
采用的是IDEA新建的工程

引入依賴
pom文件增加以下內容:
全部增加在project標簽下面
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version><relativePath/>
</parent><dependencies><!-- mongo-plus依賴 --><dependency><groupId>com.gitee.anwena</groupId><artifactId>mongo-plus-boot-starter</artifactId><version>2.0.9.3</version></dependency><!-- boot容器依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 測試依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!-- lombok依賴 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- hutool工具依賴 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.5</version></dependency>
</dependencies>
增加完后執行下載包命令
mvn clean install
最后重新加載maven依賴
配置文件
mongo-plus:data:mongodb:host: 127.0.0.1 #ipport: 27017 #端口database: demo #數據庫名username: root #用戶名,沒有可不填(若賬號中出現@,!等等符號,不需要再進行轉碼!!!)password: root #密碼,同上(若密碼中出現@,!等等符號,不需要再進行轉碼!!!)authenticationDatabase: admin #驗證數據庫connectTimeoutMS: 50000 #在超時之前等待連接打開的最長時間(以毫秒為單位)log: true
配置自己的數據庫以及賬號密碼
使用
新建實體類
@Data
@CollectionName("astarDemo")
public class AstarDemoEntity {/*** 使用ID注解,標注此字段為MongoDB的_id,或者繼承BaseModelID類*/@ID(type = IdTypeEnum.ASSIGN_ID)private String id;private String name;private int age;private String email;}
創建Service
編寫Service下的AstarDemoService和實現類AstarDemoServiceImpl,像MyBatisPlus一樣
public interface AstarDemoService extends IService<AstarDemoEntity> {
}
public class AstarDemoServiceImpl extends ServiceImpl<AstarDemoEntity> implements AstarDemoService {
}
測試類進行測試
新增方法
@ContextConfiguration(classes = MongoPlusApp.class)
@SpringBootTest
public class AstarDemoTest {@Autowiredprivate AstarDemoService astarDemoService;@Testpublic void insert() {AstarDemoEntity entity = new AstarDemoEntity();entity.setName("一顆星");entity.setAge(111);entity.setEmail("xxx@aaa.email");astarDemoService.save(entity);}
}
運行測試
控制臺已經把日志給打印出來了
接下來我們看數據庫是否存在
數據庫中也存在數據
查詢方法
@Test
public void query() {LambdaQueryChainWrapper<AstarDemoEntity> lambdaQuery = astarDemoService.lambdaQuery();// age為111的lambdaQuery.eq(AstarDemoEntity::getAge, 111);List<AstarDemoEntity> list = astarDemoService.list(lambdaQuery);list.forEach(System.out::println);
}
官方網站
官方網址
獲取本項目案例代碼
獲取本項目代碼
公粽號:一顆星宇宙
發送mongo
獲取