使用tk.mybatis快速開發curd
使用mybatis已經是可以快速開發程式了,對於單表的curd似乎是一種可抽象的結果,下面介紹tk.mybatis的使用方式。
maven引用
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
我使用的是這個版本,所以相關功能介紹也是這個版本。
使用where條件
當使用查詢條件的時候,我們可以使用mybatis的方式寫sql來解決,很多情況下,寫sql並不是一個特別簡單的情況,尤其是欄位多的時候,需要針對每個欄位進行判斷是否為空等等,寫起來是相當的多。
tk.mybatis提供了一套api,可以幫助我們省去很多操作。
Example example = new Example(xxx.class);
Example.Criteria criteria = example.createCriteria();
首先需要建立example和criteria。Example的引數是對應表的類。criteria才是我們關注的物件,他有豐富的條件。
例如且等於
criteria.andEqualTo("filed", test);
例如或等於
criteria.orEqualTo("filed", test);
例如大於和小於
criteria.andGreaterThan("filed", test);
criteria.andLessThan("filed", test);
還有一些我們常見的操作
in操作和between操作
criteria.andIn("filed", test);
criteria.andBetween("filed", test, test1);
透過以上的方法,我們基本已經可以滿足對單表的條件比對操作了。
排序操作
排序操作設計的比較奇特,並不在criteria裡,而是在example裡。
example.setOrderByClause("xxx desc");
排序的sql語句就寫在setOrderByClause中就可以了。
無論是增刪改查,呼叫的都是ByExample的方法。
坑點
-
我們在插入和查詢的時候都會使用物件來作為條件,但是如果物件裡有null值,那麼其實他不是我們想插入的欄位,我們只想插入非null的。tk.mybatis預設沒有對insert等方法做處理,而是單獨開闢了一個insertSelective的方法。這個剛開始使用特別不舒服,一般都是insert包含了過濾,但是沒有需要專門使用insertSelective。其他的方法也型別。
-
使用查詢條件的時候,使用的是物件的欄位名,而不是表的列名。這個剛開始很容易抓混,不知道應該使用哪個。
criteria.orEqualTo("filed", test);
- 當查詢條件特別多的時候,請寫sql。條件特別多的時候寫程式碼特別容易抓混,而且由於條件特別多,不需要的部分太多了,例如criteria.andGreaterThan。這些最後都會成為干擾項,這種情況寫sql是清晰的方式。
criteria.andGreaterThan("filed1", test);
criteria.andLessThan("filed2", test);
criteria.andGreaterThan("filed3", test);
criteria.andLessThan("filed4", test);
criteria.andGreaterThan("filed5", test);
criteria.andLessThan("filed6", test);
criteria.andGreaterThan("filed7", test);
criteria.andLessThan("filed8", test);
criteria.andGreaterThan("filed9", test);
criteria.andLessThan("filed0", test);
- 沒有連表操作,這算是他的一個功能不足的情況,我們可以使用mybatis的連表操作,但是他確實不是一個好的寫法。這裡也建議直接寫sql。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2822419/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FunAdmin開發框架系統一鍵curd框架
- 使用Eclipse快速開發JSPEclipseJS
- tk.mybatis中常用方法的使用(最實用)MyBatis
- 使用dbutils完成curd操作
- 搭建MyBatis開發環境及基本的CURDMyBatis開發環境
- 使用 typescript 快速開發一個 cliTypeScript
- ES快速開發,ElasticsearchRestTemplate基本使用以及ELK快速部署ElasticsearchREST
- 實戰·使用taro+雲開發快速開發小程式
- VSCode 遠端開發外掛快速使用VSCode
- 使用LeanCloud快速開發一款小程式Cloud
- SmartSql使用教程(2)—使用動態代理實現CURDSQL
- Dapper CURDAPP
- 使用Python快速開發API和Web的工具:ApiLogicServerPythonAPIWebServer
- LeaRun快速開發平臺,快速開發.net/java專案Java
- 使用 Repository 設計模式封裝通用的 CURD設計模式封裝
- 全面超越Appium,使用Airtest超快速開發App爬蟲APPAI爬蟲
- Laravel 快速開發工具Laravel
- PHP 後臺開發神器,通過視覺化配置生成CURD頁面PHP視覺化
- JNPF快速開發平臺-簡單快速高效開發java專案Java
- 使用Taro開發鴻蒙原生應用——快速上手,鴻蒙應用開發指南鴻蒙
- 使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南鴻蒙
- <<快速入手Rust>>1.使用playlaygroud進行簡單快速的線上rust開發Rust
- 快速開發一個自定義 Spring Boot Starter,並使用它Spring Boot
- 使用 Cursor 和 Devbox 快速開發並上線 Gin 專案dev
- <<快速入手Rust>>2.使用Clion、IDEA或者Pycharm開發RustRustIdeaPyCharm
- Yii1使用Gii生成模組實現CURD
- 使用js開發一個快速開啟前端專案的alfred外掛JS前端Alfred
- 前端開發快速入門前端
- HarmonyOS快速開發入門
- 使用Docker快速部署開源商城Docker
- 使用AndroidX + ViewModel + LiveData + DataBinding等元件搭建的MVVM快速開發框架AndroidViewLiveData元件MVVM框架
- 使用ONE.Abp快速開發微服務,再也不用加班了微服務
- 使用 adm 快速初始化開發 golang 管理後臺專案Golang
- MyBatis:使用MyBatis Generator快速完成Springboot專案資料層開發MyBatisSpring Boot
- Electron+Vite+Vue跨平臺電腦桌面應用快速開發框架開箱即用Go快速開發後臺框架api結合開發也可以單獨使用ViteVue框架GoAPI
- AiDex Sharp快速開發平臺開源AIIDE
- vue-cli快速原型開發Vue原型
- 什麼是快速開發框架框架