LambdaQueryWrapper、MybatisPlus提供的基本接口方法、增刪改查常用的接口方法、自定義 SQL

DAY26.2 Java核心基礎

MybatisPlus提供的基本接口方法

分頁查詢

導入依賴springboot整合Mybatis-plus

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version>
</dependency>

創建Page對象,通過usermapper里面的selectPage查詢

@Test
public void test4(){Page<User> userPage = userMapper.selectPage(new Page<>(0, 10), null);System.out.println(userPage.getRecords());System.out.println(userPage.getCurrent());System.out.println(userPage.getPages());System.out.println(userPage.getSize());
}

測試輸出:

image-20250523201508554

可以看見它并沒有分頁查詢,而是把表中所有的數據查詢出來了

為什么呢?

因為我們沒有配置分頁配置類

MybatisPlusConfig配置分頁

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 添加分頁插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor());return interceptor;}
}

我們再次查詢

image-20250523201712842

可以看見實現了分頁查詢,只查詢了10個數據

增刪改查常用的接口方法

查詢

@Test
public void test6(){// 查詢所有LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(User::getId,  1);List<User> users1 = userMapper.selectList(queryWrapper);System.out.println(users1);// 批量查詢List<User> users2 = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));System.out.println(users2);// 查詢數量System.out.println(userMapper.selectCount(null));HashMap<String, Object> stringObjectHashMap = new HashMap<>();stringObjectHashMap.put("id", 1);System.out.println(userMapper.selectByMap(stringObjectHashMap));// 查詢單個數據User user = userMapper.selectOne(queryWrapper);
}

增加

@Test
public void test7(){User user = new User();user.setName("張三");user.setRole("admin");user.setAge(18);user.setEmail("111@qq.com");user.setPwd("123456");int insert = userMapper.insert(user);System.out.println(insert);
}

更新

@Test
public void test8() {//修改User user = new User();user.setId(1);user.setName("張三");user.setRole("admin");user.setAge(18);user.setEmail("111@qq.com");user.setPwd("123456");// 根據id更新int update = userMapper.updateById(user);System.out.println(update);// 根據條件更新(wrapper)LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(User::getName, "張三");System.out.println(userMapper.update(user, queryWrapper));
}

刪除

@Test
public void test9() {// 根據id刪除int delete = userMapper.deleteById(1);System.out.println(delete);// 根據條件刪除(wrapper)LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(User::getName, "張三");int delete1 = userMapper.delete(queryWrapper);// 批量刪除userMapper.deleteBatchIds(Arrays.asList(1, 2, 3));// 根據map鍵值對刪除HashMap<String, Object> stringObjectHashMap = new HashMap<>();stringObjectHashMap.put("id", 1);stringObjectHashMap.put("name", "張三");userMapper.deleteByMap(stringObjectHashMap);
}

自定義 SQL

UserMapper

public interface UserMapper extends BaseMapper<User> {@Select("select * from user where name = #{name}")User queryByName(String name);
}
@Test
public void test10() {User user = userMapper.queryByName("張三");System.out.println(user);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84626.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84626.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84626.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

謝飛機的Java面試奇遇:AIO、BIO、NIO與Netty深度解析

謝飛機的Java面試奇遇&#xff1a;AIO、BIO、NIO與Netty深度解析 在一場充滿笑料的面試中&#xff0c;謝飛機面對嚴肅的面試官&#xff0c;從Java IO的基本概念開始&#xff0c;逐步展開對AIO、BIO、NIO的理解&#xff0c;以及Netty的高級用法。 面試現場&#xff1a;第一輪&…

三、Docker目錄掛載、卷映射、網絡

目錄掛載 如果主機目錄為空&#xff0c;則容器內也為空 -v表示目錄掛載 冒號前面的是主機上的目錄&#xff0c;冒號后面的是docker容器里面的地址 修改主機上的文件&#xff0c;發現docker容器里面的內容也隨之改變。 同樣修改docker容器里面的內容&#xff0c;主機上的文件…

Linux的學習_基礎4_指令的實踐

目錄&#xff1a; 一、常用功能 二、指令實踐 1、tail命令 2、ls命令 3、ps、kill命令 4、cd、vim命令 5、root權限與用戶權限的轉換 6、獲取網卡信息 7、sudo chmodx 8、更換到別的目錄 9、獲取文件的內容 10、lsblk 查看塊設備和文件系統信息 11、man指令與指令…

深入解析Spring Boot與Redis集成:高效緩存與性能優化

深入解析Spring Boot與Redis集成&#xff1a;高效緩存與性能優化 引言 在現代Web應用中&#xff0c;緩存技術是提升系統性能的重要手段之一。Redis作為一種高性能的內存數據庫&#xff0c;廣泛應用于緩存、會話管理和消息隊列等場景。本文將詳細介紹如何在Spring Boot項目中集…

基于微信小程序的漫展系統的設計與實現

博主介紹&#xff1a;java高級開發&#xff0c;從事互聯網行業六年&#xff0c;熟悉各種主流語言&#xff0c;精通java、python、php、爬蟲、web開發&#xff0c;已經做了六年的畢業設計程序開發&#xff0c;開發過上千套畢業設計程序&#xff0c;沒有什么華麗的語言&#xff0…

藍橋杯電子賽_零基礎利用按鍵實現不同數字的顯現

目錄 一、前提 按鍵的原理圖 二、代碼配置 bsp_key.c文件 疑問 main.c文件 main.c文件的詳細講解 功能實現 注意事項 一、前提 按鍵這一板塊主要是以記憶為主&#xff0c;我直接給大家講解代碼去實現我要配置的功能。本次我要做的項目是板子上的按鍵有S4~S19&#xff…

Python常用高階函數全面解析:通俗易懂的指南

Python常用高階函數全面解析&#xff1a;通俗易懂的指南 一、什么是高階函數&#xff1f; 高階函數(Higher-order Function)是指能夠接受其他函數作為參數&#xff0c;或者將函數作為返回值的函數。在Python中&#xff0c;函數是一等公民&#xff0c;可以像普通變量一樣傳遞和…

Flume之選擇器:復制和多路復用(比喻化理解

Flume 的選擇器決定了Source 如何將數據分發到多個 Channel。這就像 “快遞員如何分配包裹到不同的運輸通道”&#xff0c;有兩種策略&#xff1a;復制和多路復用。 一、復制&#xff08;Replicating Selector&#xff09;&#xff1a;每個 Channel 都送一份 核心邏輯 將同一…

yolov5 安卓運行

參考博客&#xff1a; 通過Android Studio 將yolov5部署到手機端(新手最新適用版)_怎么將yolo部署手機-CSDN博客 總體跟隨參考博客走是沒問題&#xff0c;有些細節需要注意&#xff1a; 1 jdk 版本選擇&#xff0c;jdk需要17&#xff0c;新版的Android Studio 選擇jdk版本方式…

day021-定時任務

文章目錄 1. cron1.1 檢查是否安裝1.2 檢查是否開機自啟動1.3 配置文件與相關命令1.4 配置文件格式 2. 案例2.1 同步時間2.2 定時備份/etc和/var/log目錄2.3 定時巡檢腳本 3. 練習三劍客過濾3.1 去重統計ip數量3.2 去重統計第7列 用戶訪問的url的數量3.3 去重統計第9列 狀態碼與…

關于(stream)流

Stream 是 Java 8 引入的一個強大的功能&#xff0c;用于處理集合&#xff08;Collection&#xff09;或數組中的數據。它提供了一種聲明式的編程方式&#xff0c;可以極大地簡化對數據的操作&#xff0c;例如過濾、排序、映射和聚合等。 1. 什么是 Stream 流&#xff1f; 定義…

結課作業自選01. 內核空間 MPU6050 體感鼠標驅動程序(二)(完整實現流程)

目錄 一. 題目要求-內核空間 MPU6050 體感鼠標驅動程序 二. 偽代碼及程序運行流程 三. 主要函數詳解&#xff08;根據代碼流程進行詳解&#xff09; 3.1 module_i2c_driver宏&#xff08;對應“1”&#xff09; 3.2 mpu_of_match設備樹匹配表&#xff08;對應“2”&#x…

5G 核心網切換機制全解析:XN、N2 與移動性注冊對比

摘要 本文深入探討了 5G 核心網中的三種關鍵切換方式:基于 XN 接口的切換、基于 N2 接口的切換以及移動性注冊更新機制。通過對比分析它們的原理、應用場景和技術差異,幫助讀者全面理解 5G 網絡中用戶移動性管理的核心技術。 1. 引言 隨著 5G 技術的廣泛應用,用戶對網絡連…

用深度學習提升DOM解析——自動提取頁面關鍵區塊

一、時間軸&#xff1a;一次“抓不到重點”的二手車數據爬蟲事故 2025/03/18 09:00 產品經理希望抓取懂車帝平臺上“北京地區二手車報價”作為競品監測數據源。我們初步使用傳統XPath方案&#xff0c;試圖提取車型、年限、里程、價格等數據。2025/03/18 10:00 初版腳本運行失敗…

React與Vue的內置指令對比

React 與 Vue 不同&#xff0c;它沒有內置的模板指令系統。React 采用了 JavaScript 優先 的聲明式方式&#xff0c;使用 JSX 語法將 HTML 和 JavaScript 結合在一起。因此&#xff0c;React 中沒有類似 Vue 的 v-if、v-for、v-bind 等內置指令。 React 中的替代方案 條件渲染…

Spring聲明式事務源碼全鏈路剖析與設計模式深度解讀

Spring聲明式事務源碼全鏈路剖析與設計模式深度解讀 作者&#xff1a;AI 日期&#xff1a;2025-05-22 一、前言 Spring事務是企業級開發的基石&#xff0c;但“為什么有時事務失效&#xff1f;”、“不同傳播行為背后發生了什么&#xff1f;”、“Spring事務源碼到底如何實現&…

云原生安全基礎:深入探討容器化環境中的權限隔離與加固策略

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 在云原生環境中&#xff0c;容器化技術&#xff08;如 Docker 和 Kubernetes&#xff09;的廣泛應用帶來了靈活性與效率&#xff0c;但也引入了新的安全挑…

如何在 ONLYOFFICE 演示文稿中調整段落首行縮進

在制作演示文稿時&#xff0c;保持內容的一致性與可讀性至關重要&#xff0c;而段落首行縮進作為格式設置的關鍵環節&#xff0c;直接影響著整體呈現效果。在本文中&#xff0c;我們將介紹如何通過創建 ONLYOFFICE 宏&#xff0c;快速設置演示文稿中所有段落的首行縮進。 關于 …

[Asp.Net]GridView、Repeater 導出Excel長數字顯示成科學計數

類似身份證純數字的格式時 &#xff0c;excel默認是數字格式 變成了科學計數法 &#xff0c; GridView:RowDataBound 添加e.Row.Cells[2].Attributes.Add(“style”, “vnd.ms-excel.numberformat:;”); protected void GridView1_RowDataBound(object sender, GridViewRowE…

Ntfs!NtfsReadBootSector函數分析之nt!CcGetVacbMiss中得到一個nt!_VACB結構

第一部分&#xff1a; 1: kd> g Breakpoint 3 hit nt!CcGetVacbMiss: 80a1a19e 6a30 push 30h 1: kd> kc # 00 nt!CcGetVacbMiss 01 nt!CcGetVirtualAddress 02 nt!CcMapData 03 Ntfs!NtfsMapStream 04 Ntfs!NtfsReadBootSector Ntfs…