最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐

 更新時間:2024年11月06日 09:44:13   作者:猿究院-愛吃西紅柿  
MyBatis-Plus是基于MyBatis的持久層增強工具,提供簡化CRUD、代碼生成器、條件構(gòu)造器、分頁及樂觀鎖等功能,極大簡化了開發(fā)工作量并提高了開發(fā)效率,本文就來介紹一下SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐,感興趣的可以了解一下

一、簡介

MyBatis-Plus官網(wǎng):MyBatis-Plus ?? 為簡化開發(fā)而生

MyBatis-Plus是一種基于MyBatis框架的強大持久層增強工具,它在MyBatis的基礎(chǔ)上提供了許多便捷的功能和增強的特性,用于簡化開發(fā)。它是一個開源項目,可以與MyBatis無縫集成。

MyBatis-Plus提供了以下主要功能和特性:

  • 簡化CRUD操作:提供了通用的Mapper接口和通用的Service接口,通過繼承這些接口可以省去大量的編碼工作。
  • 代碼生成器:可以根據(jù)數(shù)據(jù)庫表結(jié)構(gòu)自動生成實體類、Mapper接口和XML映射文件,減少手動編寫重復(fù)代碼的工作量。
  • 條件構(gòu)造器:提供了方便靈活的條件查詢封裝,可以通過鏈式調(diào)用的方式構(gòu)建查詢條件。
  • 分頁插件:提供了簡單易用的分頁查詢功能,支持多種數(shù)據(jù)庫。
  • 樂觀鎖插件:為數(shù)據(jù)庫的樂觀鎖機制提供了便捷的支持。
  • 自動填充插件:為實體類的字段自動填充值。
  • SQL注入器:可以自定義SQL注入方法,增強SQL的靈活性。

總之,MyBatis-Plus是一個功能強大的持久層增強工具,可以大大簡化開發(fā),提高開發(fā)效率。

二、SpringBoot集成MyBatis-Plus

1.導(dǎo)入依賴包

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.7</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>

2.編寫配置文件

spring:
    #配置數(shù)據(jù)源
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/maven?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false
    username: root
    password: 123456
mybatis-plus:
  configuration:
    #開啟駝峰映射
    map-underscore-to-camel-case: true
    #開啟日志,方便觀察SQL執(zhí)行語句
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3.使用注解標識實體類

@TableName(value = "student")//對應(yīng)數(shù)據(jù)庫表名
@TableId(type = IdType.AUTO)//對應(yīng)數(shù)據(jù)庫主鍵,并設(shè)置類型為自增
@TableField(value = "id") //對應(yīng)數(shù)據(jù)庫字段名
@TableField(exist = false)//設(shè)置表中不存在的字段
@TableLogic(value = "默認值",delval = "刪除后默認值")//邏輯刪除時用的字段
@Version//作用:在使用 MyBatis-Plus 樂觀鎖插件時使用

4.MyBatis-Plus 中用于構(gòu)建查詢條件的方法:

1.eq                 用于設(shè)置單個字段的相等條件。

2.allEq            通過一個 Map 來設(shè)置多個字段的相等條件

3.ne                 設(shè)置單個字段的不相等條件。

4.gt                 設(shè)置單個字段的大于條件。

5.ge                 設(shè)置單個字段的大于等于條件。

6.lt                 設(shè)置單個字段的小于條件。

7.le                 設(shè)置單個字段的小于等于條件。

8.between        設(shè)置單個字段的 BETWEEN 條件。

9.notBetween   設(shè)置單個字段的 NOT BETWEEN 條件。

10.like           設(shè)置單個字段的 LIKE 條件。

三、分頁實現(xiàn)

1.首先設(shè)置分頁攔截器作為Spring管理的Bean

package com.apesource.spring_mybatis_plus_01.config;

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;

/**
 * @author 崔世博
 * @version 1.0
 * @since 2024/9/20
 */
@Configuration
public class PageConfig {

    //注入mp攔截器
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //1.實例化攔截器
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //2.添加分頁攔截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

2.Junit測試

(1)查找第一頁前三條數(shù)據(jù)

對應(yīng)SQL語句:

SELECT stu_id,stu_name,nick_name,stu_age,is_delete FROM student WHERE is_delete=0 LIMIT 3
   @Test
    public void show6() {
        //分頁
        Page<Student> page = new Page<Student>();
        //1.定義分頁規(guī)則
        page.setSize(3);        //頁面容量
        page.setCurrent(1);     //當(dāng)前頁碼


        Page<Student> studentPage = studentMapper.selectPage(page, null);

        //分頁結(jié)果
        List<Student> list = studentPage.getRecords();
        System.out.println("總頁數(shù):" + studentPage.getPages());
        System.out.println("總記錄數(shù):" + studentPage.getTotal());
        list.forEach(System.out::println);

    }

(2)使用QueryWrapper

專門用于構(gòu)造查詢條件,支持基本的等于、不等于、大于、小于等各種常見操作。它允許你以鏈式調(diào)用的方式添加多個查詢條件,并且可以組合使用 and 和 or 邏輯。

例子:

找出student表中年齡等于20,分頁顯示第一頁的三條數(shù)據(jù)

對應(yīng)SQL語句:

SELECT stu_id,stu_name,nick_name,stu_age,is_delete FROM student WHERE is_delete=0 AND (stu_age = 20) LIMIT 3
    @Test
    public void show6() {
        //分頁
        Page<Student> page = new Page<Student>();
        //1.定義分頁規(guī)則
        page.setSize(3);        //頁面容量
        page.setCurrent(1);     //當(dāng)前頁碼

        //查詢條件(選填)
        QueryWrapper<Student> qr = new QueryWrapper<Student>();
        qr.eq("stu_age", 20);

        Page<Student> studentPage = studentMapper.selectPage(page, qr);

        //分頁結(jié)果
        List<Student> list = studentPage.getRecords();
        System.out.println("總頁數(shù):" + studentPage.getPages());
        System.out.println("總記錄數(shù):" + studentPage.getTotal());
        list.forEach(System.out::println);

    }

(3)LambdaQueryWrapper:

這是一個基于 Lambda 表達式的查詢條件構(gòu)造器,它通過 Lambda 表達式來引用實體類的屬性,從而避免了硬編碼字段名。這種方式提高了代碼的可讀性和可維護性,尤其是在字段名可能發(fā)生變化的情況下。

例子:

找出student表中年齡等于20,分頁顯示第一頁的三條數(shù)據(jù)

對應(yīng)SQL語句:

SELECT stu_id,stu_name,nick_name,stu_age,is_delete FROM student WHERE is_delete=0 AND (stu_age > 18) LIMIT 3
   @Test
    public void show6() {
        //分頁
        Page<Student> page = new Page<Student>();
        //1.定義分頁規(guī)則
        page.setSize(3);        //頁面容量
        page.setCurrent(1);     //當(dāng)前頁碼

        LambdaQueryWrapper<Student> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.gt(Student::getStuAge, 18);

        Page<Student> studentPage = studentMapper.selectPage(page, lambdaQueryWrapper);

        //分頁結(jié)果
        List<Student> list = studentPage.getRecords();
        System.out.println("總頁數(shù):" + studentPage.getPages());
        System.out.println("總記錄數(shù):" + studentPage.getTotal());
        list.forEach(System.out::println);

    }

到此這篇關(guān)于SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐的文章就介紹到這了,更多相關(guān)SpringBoot MyBatis-Plus分頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Maven倉庫無用文件和文件夾清理的方法實現(xiàn)

    Maven倉庫無用文件和文件夾清理的方法實現(xiàn)

    這篇文章主要介紹了Maven倉庫無用文件和文件夾清理的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java中unsafe操作實例總結(jié)

    Java中unsafe操作實例總結(jié)

    本篇文章給大家分享了關(guān)于Java中unsafe操作的相關(guān)知識點以及相關(guān)的實例代碼,有需要的朋友可以學(xué)習(xí)參考下。
    2018-03-03
  • 利用Spring框架為自己的校園卡充值(推薦)

    利用Spring框架為自己的校園卡充值(推薦)

    這篇文章主要介紹了利用Spring框架為自己的校園卡充值,本次實驗主要運用了Spring的控制反轉(zhuǎn)(IOC)和依賴注入(DI)等知識,通過利用Spring框架編寫Java程序,實現(xiàn)學(xué)生卡的單次充值,如需對學(xué)生卡進行多次充值,可將部分代碼修改即可實現(xiàn),需要的朋友可以參考下
    2022-10-10
  • 一文了解Seata的實現(xiàn)原理

    一文了解Seata的實現(xiàn)原理

    隨著業(yè)務(wù)發(fā)展,單體系統(tǒng)逐漸無法滿足業(yè)務(wù)的需求,分布式架構(gòu)逐漸成為大型互聯(lián)網(wǎng)平臺首選。伴隨而來的問題是,本地事務(wù)方案已經(jīng)無法滿足,分布式事務(wù)相關(guān)規(guī)范和框架應(yīng)運而生。本文主要介紹Seata的實現(xiàn)原理
    2021-06-06
  • SpringBoot整合activemq的案例代碼

    SpringBoot整合activemq的案例代碼

    ActiveMQ是消息隊列技術(shù),為解決高并發(fā)問題而生,本文通過案例代碼給大家介紹pringBoot整合activemq的詳細過程,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • 將java文件轉(zhuǎn)變?yōu)閎at文件實現(xiàn)方式

    將java文件轉(zhuǎn)變?yōu)閎at文件實現(xiàn)方式

    文章介紹了如何將Java文件轉(zhuǎn)換為批處理文件(.bat),以便于快速運行,步驟包括刪除包聲明、編譯生成.class文件,然后編寫批處理文件指定運行命令
    2026-01-01
  • JSONObject按put順序排放與輸出方式

    JSONObject按put順序排放與輸出方式

    這篇文章主要介紹了JSONObject按put順序排放與輸出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java web圖片上傳和文件上傳實例

    java web圖片上傳和文件上傳實例

    本篇文章主要介紹了java web圖片上傳和文件上傳實例,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • 說說@ModelAttribute在父類和子類中的執(zhí)行順序

    說說@ModelAttribute在父類和子類中的執(zhí)行順序

    這篇文章主要介紹了@ModelAttribute在父類和子類中的執(zhí)行順序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯誤的解決

    SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯誤的解決

    這篇文章主要介紹了SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論

清水县| 大田县| 敦化市| 恩平市| 旌德县| 抚远县| 宽城| 宜昌市| 永川市| 长垣县| 和林格尔县| 延川县| 景德镇市| 宁都县| 长阳| 北海市| 长春市| 沅陵县| 榆林市| 金山区| 登封市| 和田市| 阿尔山市| 松江区| 砀山县| 宜城市| 栾川县| 苍梧县| 荆州市| 贡山| 当涂县| 武平县| 青田县| 平阳县| 宝山区| 方正县| 牙克石市| 大城县| 张家港市| 巴彦县| 巴马|