Mybatis-plus 思维导图,让 Mybatis-plus 不再难懂
轉載自?Mybatis-plus 思維導圖,讓 Mybatis-plus 不再難懂
摘要: Mybatis-Plus(簡稱MP)是一個Mybatis的增強工具,在 Mybatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。mybatis-plus與mybatis
mybatis
?Mybatis?是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
但mybatis有個讓我比較頭疼的一個問題是sql工作量很大,尤其是字段多的時候。雖然說單表的增刪改查操作可以通過mybatis generator工具來生成(或者自己寫模板工具生成),但項目開發的過程中總免不了要新添加新字段,這些工具就幫不了我了,我得把新字段寫到原來的所有增刪改查的sql中。這是個痛苦的過程,特別是當你重復了很多次之后。
mybatis的單表操作也是賊麻煩的事,因為篩選的條件可能會各種各樣,所以你不得不寫很多動態sql來兼容查詢條件,這也讓我不能集中精力去處理業務。
每當這時候,我懷念Hibernate了。嘿嘿,Hibernate加字段就賊簡單,單表操作也是賊方便。但我依然不喜歡用Hibernate,哈哈。
mybatis-plus
而mybatis-plus這樣一個框架,一種集mybatis與hibernate的優點一起的框架。它提供了hibernate的單表CRUD操作的方便同時,又保留了mybatis的特性。
先來看看官方怎么解釋mybatis-plus的:
- Mybatis-Plus(簡稱MP)是一個Mybatis的增強工具,在 Mybatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
- 我們的愿景是成為Mybatis最好的搭檔,就像?Contra Game?中的1P、2P,基友搭配,效率翻倍。
帶問題去學習,請思考
- mybatis-plus怎么實現單表URUD操作?
- mybatis-plus的底層實現原理是什么?
- mybatis-plus與其他同類框架如mybatis helper有很什么優勢?
- 如何集成mybatis-plus快速搭建一個spring boot項目。
特性
從上圖可以看出,mybatis-plus不僅僅封裝了基本的CRUD操作,還內置了防SQL注入操作、常用的分頁插件,還有我最喜歡的ActiveRecord模式。
用過jfinal的人應該都知道ActiveRecord是啥。Active Record 是一種數據訪問設計模式,它可以幫助你實現數據對象Object到關系數據庫的映射。
常用實體注解
MP通過ORM模式封裝了常用的CRUD操作,自然少不了實體注解,先來看看都有哪些注解
其中實體無注解化設置可以如下處理:
- 當數據庫的表字段名是駝峰命名時無需注解處理。
- 或者全局配置: 下劃線命名 dbColumnUnderline 設置 true , 大寫 isCapitalMode 設置 true
但其實我壓根就沒管過手寫過這些注解,使用mp代碼生成器自動生成主體后直接覆蓋原來的就行了,減少人工的失誤,方便快捷。至于@Version與@KeySequence這兩個注解,貌似我還真沒用過。嘿嘿。。。
簡化 CRUD
前面已經說了mp已經簡化了mybatis的單表基本操作,先來看看。
相比兩種寫法,我更喜歡ActiveRecord的模式寫法,因為我不用注入userMapper,new了一個對象之后直接調用方法操作就行了。
復雜的查詢也很簡單,新建一個EntityWrapper作為查詢對象,Wrapper接口封裝了很多常用的方法。幾乎sql能寫出來的條件調用Wrapper的方法就能表現出來。
架構原理
參考答案略。
不過我建議你去mp官網或者這里看看,哈哈?->?mybatis-plus 實踐及架構原理.pdf
mybatis plus代碼生成器 與 mybatis generator
說起mybatis plus代碼生成器的代碼,我記得以前這這篇文章中介紹過
- 開源項目spring-shiro-training思維導圖,讓項目不再難懂
現在再拿來用下哈。原理其實很簡單,定義好velocity模板(當然你也可以自定義),然后傳參數渲染模板生成對應的文件。
我建議你生成的位置最好不要直接覆蓋原來的文件,你可能已經有過修改,直接覆蓋的話會導致丟失。
而mybatis generator生成的代碼就是基本的增刪改查和實體。模板好像改不了,靈活性明顯不夠。
mp插件拓展
mp不僅僅幫我們實現了基本的增刪改查操作,同時還擴展了很多實用的插件。讓開發的過程更加簡單。
分頁插件?按如下步驟:
- 自定義查詢語句分頁(自己寫sql/mapper)
- spring 注入 mybatis 配置分頁插件
- UserMapper.java 方法內容
- UserServiceImpl.java 調用翻頁方法,需要 page.setRecords 回傳給頁面
- UserMapper.xml 等同于編寫一個普通 list 查詢,mybatis-plus 自動替你分頁
邏輯刪除插件
邏輯刪除的效果?---> 會在mp自帶查詢和更新方法的sql后面,追加『邏輯刪除字段』=『LogicNotDeleteValue默認值』 刪除方法: deleteById()和其他delete方法, 底層SQL調用的是update tbl_xxx set 『邏輯刪除字段』=『logicDeleteValue默認值』
配置如下:
spring整合mybatis-plus的優秀案例
-
基本集成案例?mybatisplus-spring-boot
-
Java EE(J2EE)快速開發框架?SpringWind
-
SSM 后臺框架?KangarooAdmin
-
JAVA分布式快速開發基礎平臺?iBase4J
-
又一個 SSM 后臺管理框架?framework
-
貓寧Morning公益商城?Morning
-
簡單實用的權限系統?spring-shiro-training?Shiro 案例
總結
以上是生活随笔為你收集整理的Mybatis-plus 思维导图,让 Mybatis-plus 不再难懂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做视频编辑对电脑配置有什么要求?
- 下一篇: MyBatis 思维导图,让 MyBat