今天公司接了一個項目,看到我們老大使用的是mybaits plus,就學習了這個開發框架。
下面是一些mybaits plus的一些特性。
- 無侵入:只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑
- 損耗小:啓動即會自動注入基本 CURD(CRUD是一個數據庫技術中的縮寫詞,一般的項目開發的各種參數的基本功能都是CURD。
它代表創建(Create)、讀取(Read)更新(Update)和刪除(Delete)操作。
CRUD 定義了用於處理數據的基本原子操作。.
之所以將CRUD 提升到一個技術難題的高度是因爲完成一個涉及在多個數據庫系統中進行CRUD操作的彙總相關的活動,其性能可能會隨數據關係的變化而有非常大的差異。
CRUD 操作通常是使用關係數據庫系統中的結構化查詢語言(Structured Query Language,SQL)完成的。隨着 Web 變得更加具有面向數據特性,因此需要從基於 SQL 的 CRUD 操作轉移到基於語義 Web 的 CRUD 操作。),性能基本無損耗,直接面向對象操作 - 強大的 CRUD 操作:內置通用 Mapper、通用 Service,僅僅通過少量配置即可實現單表大部分 CRUD 操作,更有強大的條件構造器,滿足各類使用需求
- 支持 Lambda 形式調用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
- 支持主鍵自動生成:支持多達 4 種主鍵策略(內含分佈式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
- 支持 ActiveRecord 模式:支持 ActiveRecord 形式調用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
- 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
- 內置代碼生成器:採用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
- 內置分頁插件:基於 MyBatis 物理分頁,開發者無需關心具體操作,配置好插件之後,寫分頁等同於普通 List 查詢
- 分頁插件支持多種數據庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多種數據庫
- 內置性能分析插件:可輸出 Sql 語句以及其執行時間,建議開發測試時啓用該功能,能快速揪出慢查詢
- 內置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規則,預防誤操作
QueryWrapper<SysOperationLog> QueryWrapper=new QueryWrapper(); QueryWrapper.lambda().like(類名::getModelName,opration); int current = offset / limit + 1; IPage<類名> page = new Page<類名>(current, limit); IPage<類名> SysOperationLog=某某Service.page(page,QueryWrapper); return ResponseData.getSuccessResponse(SysOperationLog);
這樣就實現了一次模糊查詢。
這是一些利用lambda查詢語句的關鍵字
查詢方式 | 說明 |
---|---|
setSqlSelect | 設置 SELECT 查詢字段 |
where | WHERE 語句,拼接 + WHERE 條件 |
and | AND 語句,拼接 + AND 字段=值 |
andNew | AND 語句,拼接 + AND (字段=值) |
or | OR 語句,拼接 + OR 字段=值 |
orNew | OR 語句,拼接 + OR (字段=值) |
eq | 等於= |
allEq | 基於 map 內容等於= |
ne | 不等於<> |
gt | 大於> |
ge | 大於等於>= |
lt | 小於< |
le | 小於等於<= |
like | 模糊查詢 LIKE |
notLike | 模糊查詢 NOT LIKE |
in | IN 查詢 |
notIn | NOT IN 查詢 |
isNull | NULL 值查詢 |
isNotNull | IS NOT NULL |
groupBy | 分組 GROUP BY |
having | HAVING 關鍵詞 |
orderBy | 排序 ORDER BY |
orderAsc | ASC 排序 ORDER BY |
orderDesc | DESC 排序 ORDER BY |
exists | EXISTS 條件語句 |
notExists | NOT EXISTS 條件語句 |
between | BETWEEN 條件語句 |
notBetween | NOT BETWEEN 條件語句 |
addFilter | 自由拼接 SQL |
last | 拼接在最後,例如:last("LIMIT 1") |