mybatis-plus中l(wèi)ambdaQuery()與lambdaUpdate()比較常見的使用方法總結(jié)
簡介
MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window)的增強工具,在 MyBatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。
愿景
我們的愿景是成為 MyBatis 最好的搭檔,就像 魂斗羅 中的 1P、2P,基友搭配,效率翻倍。
- 無侵入:只做增強不做改變,引入它不會對現(xiàn)有工程產(chǎn)生影響,如絲般順滑
- 損耗?。簡蛹磿詣幼⑷牖?CURD,性能基本無損耗,直接面向?qū)ο蟛僮?/li>
- 強大的 CRUD 操作:內(nèi)置通用 Mapper、通用 Service,僅僅通過少量配置即可實現(xiàn)單表大部分 CRUD 操作,更有強大的條件構(gòu)造器,滿足各類使用需求
- 支持 Lambda 形式調(diào)用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯支持主鍵自動生成:支持多達 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
支持 ActiveRecord 模式:支持 ActiveRecord 形式調(diào)用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere ) - 內(nèi)置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
- 內(nèi)置分頁插件:基于 MyBatis 物理分頁,開發(fā)者無需關(guān)心具體操作,配置好插件之后,寫分頁等同于普通 List 查詢
- 分頁插件支持多種數(shù)據(jù)庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫
- 內(nèi)置性能分析插件:可輸出 SQL 語句以及其執(zhí)行時間,建議開發(fā)測試時啟用該功能,能快速揪出慢查詢
- 內(nèi)置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預防誤操作
前言
采用簡明的拉姆達表達式查詢數(shù)據(jù)
學生類
@Data public class Student { /*學號*/ private Integer sno; /*名稱*/ private String name; /*年齡*/ private int age; /*班級名稱*/ private String className; /*地址*/ private String address; }
mybaits-plus 簡單明了的,開發(fā)中比較常見的使用方式
根據(jù)id查詢
Student byId = studentService.getById(1);
帶條件的查詢 根據(jù)id查詢對象
Student one = studentService.lambdaQuery().eq(Student::getSno, 1).one();
查詢學生集合
List<Student> list = studentService.list();
帶條件的集合查詢 根據(jù)地址查詢所在上海的學生
List<Student> studentList = studentService.lambdaQuery().eq(Student::getAddress, "上海").list();
常見的分頁查詢
String name = "張三"; Integer current = 1; Integer size = 10; IPage<Student> studentIPage = studentService.page(new Page(current,size),new QueryWrapper<Student>() .like(StrUtil.isNotBlank(name),"name",name));
根據(jù)id刪除
studentService.removeById(1);
帶條件的刪除 刪除名稱為張三 年齡等于15的學生
studentService.lambdaUpdate().eq(Student::getName,"張三").eq(Student::getAge,15).remove();
修改 根據(jù)id修改
Student student = new Student(); student.setSno(1); student.setAddress("上海"); student.setClassName("一年級一班"); studentService.updateById(student);
修改 將學號為1的學生的地址修改為湖南
studentService.lambdaUpdate().set(Student::getAddress,"湖南").eq(Student::getSno,1).update();
< <= > >= <>
lt() le() gt() ge() ne()
查詢年齡小于20的學生集合 其他以此內(nèi)推
List<Student> list1 = studentService.lambdaQuery().lt(Student::getAge, 20).list();
總結(jié)
到此這篇關(guān)于mybatis-plus中l(wèi)ambdaQuery()與lambdaUpdate()比較常見使用方法的文章就介紹到這了,更多相關(guān)mybatis-plus lambdaQuery()與lambdaUpdate()使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
談談Java利用原始HttpURLConnection發(fā)送POST數(shù)據(jù)
這篇文章主要給大家介紹java利用原始httpUrlConnection發(fā)送post數(shù)據(jù),設(shè)計到httpUrlConnection類的相關(guān)知識,感興趣的朋友跟著小編一起學習吧2015-10-10springboot項目整合注冊功能模塊開發(fā)實戰(zhàn)
這篇文章主要介紹了springboot項目整合注冊功能模塊開發(fā)實戰(zhàn),在用戶的注冊是首先需要查詢當前的用戶名是否存在,如果存在則不能進行注冊,相當于一個查詢語句,本文通過實例代碼詳細講解,需要的朋友可以參考下2022-11-11SpringBoot集成H2內(nèi)存數(shù)據(jù)庫的方法
H2是Thomas Mueller提供的一個開源的、純java實現(xiàn)的關(guān)系數(shù)據(jù)庫。本文主要介紹了SpringBoot集成H2內(nèi)存數(shù)據(jù)庫,具有一定的參考價值,感興趣的可以了解一下2021-09-09關(guān)于如何正確地定義Java內(nèi)部類方法詳解
在Java中,我們通常是把不同的類創(chuàng)建在不同的包里面,對于同一個包里的類來說,它們都是同一層次的,但其實還有另一種情況,有些類可以被定義在另一個類的內(nèi)部,本文將詳細帶你了解如何正確地定義Java內(nèi)部類,需要的朋友可以參考下2023-05-05mybatis多數(shù)據(jù)源動態(tài)切換的完整步驟
這篇文章主要給大家介紹了關(guān)于mybatis多數(shù)據(jù)源動態(tài)切換的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11java:程序包org.springframework.boot不存在的完美解決方法
最近項目中運行的時候提示了"java: 程序包org.springframework.boot不存在",下面這篇文章主要給大家介紹了關(guān)于java:程序包org.springframework.boot不存在的完美解決方法,需要的朋友可以參考下2023-05-05