MyBatisPlus

MyBatis-Plus?(opens new window)(簡(jiǎn)稱 MP)是一個(gè)?MyBatis?(opens new window)的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。

特性

無(wú)侵入:只做增強(qiáng)不做改變,引入它不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響,如絲般順滑

損耗小:?jiǎn)?dòng)即會(huì)自動(dòng)注入基本 CURD,性能基本無(wú)損耗,直接面向?qū)ο蟛僮?/p>

強(qiáng)大的 CRUD 操作:內(nèi)置通用 Mapper、通用 Service,僅僅通過(guò)少量配置即可實(shí)現(xiàn)單表大部分 CRUD 操作,更有強(qiáng)大的條件構(gòu)造器,滿足各類(lèi)使用需求

支持 Lambda 形式調(diào)用:通過(guò) Lambda 表達(dá)式,方便的編寫(xiě)各類(lèi)查詢條件,無(wú)需再擔(dān)心字段寫(xiě)錯(cuò)

支持主鍵自動(dòng)生成:支持多達(dá) 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問(wèn)題

支持 ActiveRecord 模式:支持 ActiveRecord 形式調(diào)用,實(shí)體類(lèi)只需繼承 Model 類(lèi)即可進(jìn)行強(qiáng)大的 CRUD 操作

支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )

內(nèi)置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來(lái)使用

內(nèi)置分頁(yè)插件:基于 MyBatis 物理分頁(yè),開(kāi)發(fā)者無(wú)需關(guān)心具體操作,配置好插件之后,寫(xiě)分頁(yè)等同于普通 List 查詢

分頁(yè)插件支持多種數(shù)據(jù)庫(kù):支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫(kù)

內(nèi)置性能分析插件:可輸出 Sql 語(yǔ)句以及其執(zhí)行時(shí)間,建議開(kāi)發(fā)測(cè)試時(shí)啟用該功能,能快速揪出慢查詢

內(nèi)置全局?jǐn)r截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預(yù)防誤操作

一. 使用步驟

1.創(chuàng)建數(shù)據(jù)庫(kù)表

2.pom.xml導(dǎo)入依賴

3.application.properties配置數(shù)據(jù)庫(kù)

4.創(chuàng)建實(shí)體類(lèi)

5.創(chuàng)建Mapper類(lèi),繼承自BaseMapper,里面實(shí)現(xiàn)了基礎(chǔ)的增刪改查,我們可以直接使用,而不用自己再寫(xiě)mapper.xml文件.注解@Repository表示持久層。

6.在主啟動(dòng)類(lèi)中加入MapperScan注解

7.在測(cè)試類(lèi)中測(cè)試增刪改查

快速運(yùn)行成功!

二. 配置日志

由于省去了編寫(xiě)mapper.xml,我們不用再寫(xiě)sql語(yǔ)句,但是可以通過(guò)日志在控制臺(tái)輸出執(zhí)行的sql語(yǔ)句。在application.properties中配置log即可實(shí)現(xiàn)。

三. 插入數(shù)據(jù)保證ID唯一

使用雪花算法生成唯一ID。

四.自動(dòng)填充

數(shù)據(jù)庫(kù)表中的字段create_time,update_time

五. 樂(lè)觀鎖

并發(fā)控制,保證數(shù)據(jù)準(zhǔn)確。一般是在數(shù)據(jù)表中加上一個(gè)數(shù)據(jù)版本號(hào)?version?字段,表示數(shù)據(jù)被修改的次數(shù)。當(dāng)數(shù)據(jù)被修改時(shí),version?值會(huì)+1。當(dāng)線程A要更新數(shù)據(jù)值時(shí),在讀取數(shù)據(jù)的同時(shí)也會(huì)讀取?version?值,在提交更新時(shí),若剛才讀取到的?version?值與當(dāng)前數(shù)據(jù)庫(kù)中的?version?值相等時(shí)才更新,否則重試更新操作,直到更新成功。

六.分頁(yè)查詢

配置攔截器組件

直接使用Page對(duì)象

七.刪除操作

邏輯刪除和物理刪除

1.邏輯刪除: 在數(shù)據(jù)庫(kù)中沒(méi)有消失,只是用一個(gè)變量讓數(shù)據(jù)時(shí)效?

2.物理刪除 :從數(shù)據(jù)庫(kù)中直接移除

配置

直接測(cè)試刪除,然后查看數(shù)據(jù)庫(kù)中是否還存在

八. 條件構(gòu)造器



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,868評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽(tīng)閱讀 10,918評(píng)論 0 11
  • 可愛(ài)進(jìn)取,孤獨(dú)成精。努力飛翔,天堂翱翔。戰(zhàn)爭(zhēng)美好,孤獨(dú)進(jìn)取。膽大飛翔,成就輝煌。努力進(jìn)取,遙望,和諧家園。可愛(ài)游走...
    趙原野閱讀 3,551評(píng)論 1 1
  • 在妖界我有個(gè)名頭叫胡百曉,無(wú)論是何事,只要找到胡百曉即可有解決的辦法。因?yàn)槭侵缓偞蠹乙杂瀭饔灲形摇皟A城百曉”,...
    貓九0110閱讀 3,728評(píng)論 7 3

友情鏈接更多精彩內(nèi)容