Java SpringBoot MongoPlus 使用MyBatisPlus的方式,優雅的操作MongoDB

Java SpringBoot MongoPlus 使用MyBatisPlus的方式,優雅的操作MongoDB

    • 介紹
    • 特性
    • 安裝
      • 新建SpringBoot工程
      • 引入依賴
      • 配置文件
    • 使用
      • 新建實體類
      • 創建Service
      • 測試類進行測試
        • 新增方法
        • 查詢方法
    • 官方網站
    • 獲取本項目案例代碼

image-20240704134601333

介紹

MongoPlus

Mongo-Plus(簡稱 MP)是一個 MongoDB 的操作工具,可和現有mongoDB框架結合使用,為簡化開發、提高效率而生。

特性

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

安裝

新建SpringBoot工程

采用的是IDEA新建的工程

image-20240704135503380

引入依賴

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

運行測試

控制臺已經把日志給打印出來了

image-20240704142516312

接下來我們看數據庫是否存在

image-20240704142552267

數據庫中也存在數據

查詢方法
@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);
}

image-20240704143313363

官方網站

官方網址

獲取本項目案例代碼

獲取本項目代碼

公粽號:一顆星宇宙

發送mongo獲取

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41799.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡服務器配置與管理

網絡服務器配置與管理是一個涉及多個方面的領域&#xff0c;它涵蓋了從物理硬件的設置到操作系統、網絡服務和應用的配置&#xff0c;再到日常維護和安全策略的實施。以下是網絡服務器配置與管理的一些核心概念和步驟&#xff1a; 硬件配置&#xff1a; 選擇合適的服務器硬件&a…

網站易被攻擊原因及保護措施

網絡攻擊是指通過惡意手段侵犯網絡系統的穩定性和安全性的行為。很多網站都成為黑客攻擊的目標&#xff0c;因此對于網站管理員和網絡用戶來說&#xff0c;了解各種被攻擊的方式以及如何解決是非常重要的。本文將介紹一些常見的網站攻擊方式&#xff0c;并提供一些解決方案 1.…

基于docker上安裝elasticSearch7.12.1

部署elasticsearch 首先&#xff0c;先創建網絡 # 創建網絡 docker network create es-net拉取elasticSearch的鏡像 #拉取鏡像 docker pull elasticsearch:7.12.1創建掛載點目錄 # 創建掛載點目錄 mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugin…

智能決策的藝術:揭秘決策樹的奇妙原理與實戰應用

引言 決策樹&#xff08;Decision Tree&#xff09;是一種常用的監督學習算法&#xff0c;適用于分類和回歸任務。它通過學習數據中的規則生成樹狀模型&#xff0c;從而做出預測決策。決策樹因其易于理解和解釋、無需大量數據預處理等優點&#xff0c;廣泛應用于各種機器學習任…

【SD教程】進階篇圖片復現AnimateDiff動畫插件基礎教程(附模型插件)

當你成功安裝了SD&#xff08;Stable Diffusion&#xff09;后&#xff0c;是否也產生過這樣的疑惑&#xff1a;為何我創作的圖片與他人的作品在風格和質量上存在差異&#xff1f; 看著別人創作的精致、引人入勝的圖片&#xff0c;你是否也渴望縮小這種質感上的差距&#xff1…

游戲AI的創造思路-技術基礎-決策樹(1)

決策樹&#xff0c;是每個游戲人必須要掌握的游戲AI構建技術&#xff0c;難度小&#xff0c;速度快&#xff0c;結果直觀&#xff0c;本篇將對決策樹進行小小解讀~~~~ 目錄 1. 定義 2. 發展歷史 3. 決策樹的算法公式和函數 3.1. 信息增益&#xff08;Information Gain&…

深度解析:STM32對接米家平臺,打造WiFi智能插座(ESP8266、電流檢測)

摘要: 智能插座作為智能家居的入門級設備&#xff0c;憑借其低成本、易部署等優勢&#xff0c;受到了廣大用戶的青睞。本文將引領你從零開始&#xff0c;使用功能強大的STM32微控制器、廣受歡迎的ESP8266 WiFi模塊以及功能豐富的米家IoT平臺&#xff0c;一步步打造出一款能夠遠…

el-form rules動態限制

情景描述&#xff1a; el-form 的ref“obj” rules 對象obj有a,b,c三個字段&#xff0c;點擊按鈕a&#xff0c;a和b字段必填,點擊按鈕c,c字段必填&#xff0c;如何通過 this.$refs.obj.validate((valid)>{})去判斷呢 <template><div><!-- 你的表單組件 --&g…

代碼隨想錄-Day50

1143. 最長公共子序列 給定兩個字符串 text1 和 text2&#xff0c;返回這兩個字符串的最長 公共子序列 的長度。如果不存在 公共子序列 &#xff0c;返回 0 。 一個字符串的 子序列 是指這樣一個新的字符串&#xff1a;它是由原字符串在不改變字符的相對順序的情況下刪除某些…

【Linux】supervisor離線源碼安裝

一、安裝meld wget https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz#md53ccc78cd79cffd63a751ad7684c02c91tar -zxvf meld3-1.0.2.tar.gz cd meld3-1.0.2 python setup.py install二、安裝supervis…

Linux環境中安裝JDK

1.下載安裝包 可以通過訪問oracle官網&#xff1a;Java Downloads | Oracle 中國 下載對應的安裝包。 本文使用的是java8的安裝包&#xff0c;包名為&#xff1a;jdk-8u401-linux-x64.tar.gz 2.上傳安裝包到Linux環境 3.進入/usr目錄下&#xff0c;新建一個java的目錄&#…

Python數據分析-歐洲經濟聚類和主成分分析

一、研究背景 歐洲經濟長期以來是全球經濟體系中的重要組成部分。無論是在全球金融危機后的復蘇過程中&#xff0c;還是在新冠疫情期間&#xff0c;歐洲經濟的表現都對世界經濟產生了深遠的影響。歐洲各國經濟體之間既存在相似性&#xff0c;也存在顯著的差異。這些差異不僅體…

Linux下QT程序啟動失敗問題排查方法

文章目錄 0.問題背景1.程序啟動失敗常見原因2.排查依賴庫問題2.1 依賴庫缺失2.2 依賴庫加載路徑錯誤2.3 依賴庫版本不匹配2.4 QT插件庫缺失2.4.1 QT插件庫缺失2.4.2 插件庫自身的依賴庫缺失 2.5 系統基礎C庫不匹配 3.資源問題3.1 缺少翻譯文件3.2 缺少依賴的資源文件3.3 缺少依…

Unity3D批量修改名稱工具

介紹 該工具用于批量修改某游戲對象的一級子對象名稱&#xff0c;功能包括批量添加前后綴、批量修改公共名稱字段和批量修改為同一名稱&#xff0c;包括撤銷和恢復功能。 批量添加前后綴可使用預設從指定數字遞增或遞減至指定數字。 資源下載 GitHub 百度網盤&#xff08…

水果商城系統 SpringBoot+Vue

1、技術棧 技術棧&#xff1a;SpringBootVueMybatis等使用環境&#xff1a;Windows10 谷歌瀏覽器開發環境&#xff1a;jdk1.8 Maven mysql Idea 數據庫僅供學習參考 【已經答辯過的畢業設計】 項目源碼地址 2、功能劃分 3、效果演示

化工廠定位的意義?如何有效解決管理難題

化工廠定位是運用于工廠人員定位管理的新技術&#xff0c;這一技術的應用具有特殊的意義&#xff0c;和傳統管理模式相比具有很大的區別&#xff0c;那么&#xff0c;你是否清楚化工廠定位的意義&#xff0c;它是如何有效的去解決工廠現存的管理難題呢? 傳統化工廠管理到底有哪…

PySide6開發桌面程序,PySide6入門實戰(上)

文章目錄 系列文章索引一、前期準備1、簡介及安裝2、PyCharm PySide6環境搭建&#xff08;1&#xff09;基礎環境&#xff08;2&#xff09;配置QT Designer、PyUIC、PyRCC&#xff08;3&#xff09;使用pyside6項目&#xff08;4&#xff09;資源文件編寫與編譯 二、QT常用控件…

排序矩陣查找

題目鏈接 排序矩陣查找 題目描述 注意點 每一行、每一列都按升序排列 解答思路 可以從右上角開始遍歷&#xff0c;如果當前元素就等于target&#xff0c;直接返回true&#xff1b;如果當前元素小于target&#xff0c;則target肯定在當前位置下方&#xff1b;如果當前元素大…

基于深度學習的電力分配

基于深度學習的電力分配是一項利用深度學習算法優化電力系統中的電力資源分配、負荷預測、故障檢測和系統管理的技術。該技術旨在提高電力系統的運行效率、穩定性和可靠性。以下是關于這一領域的系統介紹&#xff1a; 1. 任務和目標 電力分配的主要任務是優化電力系統中的電力…