亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot+MyBatis-Plus實(shí)現(xiàn)分頁(yè)的項(xiàng)目實(shí)踐

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

一、簡(jiǎn)介

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

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

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

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

總之,MyBatis-Plus是一個(gè)功能強(qiáng)大的持久層增強(qiáng)工具,可以大大簡(jiǎn)化開發(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í)行語(yǔ)句
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3.使用注解標(biāo)識(shí)實(shí)體類

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

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

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

2.allEq            通過(guò)一個(gè) Map 來(lái)設(shè)置多個(gè)字段的相等條件

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

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

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

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

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

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

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

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

三、分頁(yè)實(shí)現(xiàn)

1.首先設(shè)置分頁(yè)攔截器作為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.實(shí)例化攔截器
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //2.添加分頁(yè)攔截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

2.Junit測(cè)試

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

對(duì)應(yīng)SQL語(yǔ)句:

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


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

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

    }

(2)使用QueryWrapper

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

例子:

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

對(duì)應(yīng)SQL語(yǔ)句:

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() {
        //分頁(yè)
        Page<Student> page = new Page<Student>();
        //1.定義分頁(yè)規(guī)則
        page.setSize(3);        //頁(yè)面容量
        page.setCurrent(1);     //當(dāng)前頁(yè)碼

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

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

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

    }

(3)LambdaQueryWrapper:

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

例子:

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

對(duì)應(yīng)SQL語(yǔ)句:

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() {
        //分頁(yè)
        Page<Student> page = new Page<Student>();
        //1.定義分頁(yè)規(guī)則
        page.setSize(3);        //頁(yè)面容量
        page.setCurrent(1);     //當(dāng)前頁(yè)碼

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

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

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

    }

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

相關(guān)文章

  • MyBatis-Plus 插件擴(kuò)展的實(shí)現(xiàn)

    MyBatis-Plus 插件擴(kuò)展的實(shí)現(xiàn)

    MyBatis-Plus通過(guò)插件擴(kuò)展機(jī)制增強(qiáng)功能,基于MyBatis Interceptor攔截器,包括分頁(yè)插件、邏輯刪除、SQL性能分析和樂(lè)觀鎖等,開發(fā)者可自定義插件以適應(yīng)特定需求,有效地增強(qiáng)SQL執(zhí)行過(guò)程的控制和優(yōu)化,同時(shí)注意插件使用的性能影響和執(zhí)行順序
    2024-09-09
  • Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn)

    Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn)

    這篇文章主要介紹了Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Spring Bean的定義及三種創(chuàng)建方式

    Spring Bean的定義及三種創(chuàng)建方式

    本文主要介紹了Spring容器獲取Bean的9種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java 數(shù)據(jù)結(jié)構(gòu)之時(shí)間復(fù)雜度與空間復(fù)雜度詳解

    Java 數(shù)據(jù)結(jié)構(gòu)之時(shí)間復(fù)雜度與空間復(fù)雜度詳解

    算法復(fù)雜度分為時(shí)間復(fù)雜度和空間復(fù)雜度。其作用: 時(shí)間復(fù)雜度是度量算法執(zhí)行的時(shí)間長(zhǎng)短;而空間復(fù)雜度是度量算法所需存儲(chǔ)空間的大小
    2021-11-11
  • 淺談Java中String的常用方法

    淺談Java中String的常用方法

    今天帶大家來(lái)復(fù)習(xí)一下Java中String的常用方法,文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • java中MultipartFile互轉(zhuǎn)File的方法

    java中MultipartFile互轉(zhuǎn)File的方法

    本文主要介紹了java中MultipartFile互轉(zhuǎn)File的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Java項(xiàng)目開啟遠(yuǎn)程調(diào)試的方法步驟(tomcat、springboot)

    Java項(xiàng)目開啟遠(yuǎn)程調(diào)試的方法步驟(tomcat、springboot)

    這篇文章主要介紹了Java項(xiàng)目開啟遠(yuǎn)程調(diào)試的方法步驟(tomcat、springboot),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Spring?Boot?整合RocketMq實(shí)現(xiàn)消息過(guò)濾功能

    Spring?Boot?整合RocketMq實(shí)現(xiàn)消息過(guò)濾功能

    這篇文章主要介紹了Spring?Boot?整合RocketMq實(shí)現(xiàn)消息過(guò)濾,本文講解了RocketMQ實(shí)現(xiàn)消息過(guò)濾,針對(duì)不同的業(yè)務(wù)場(chǎng)景選擇合適的方案即可,需要的朋友可以參考下
    2022-06-06
  • 使用Post方式提交數(shù)據(jù)到Tomcat服務(wù)器的方法

    使用Post方式提交數(shù)據(jù)到Tomcat服務(wù)器的方法

    這篇將介紹使用Post方式提交數(shù)據(jù)到服務(wù)器,由于Post的方式和Get方式創(chuàng)建Web工程是一模一樣的,只用幾個(gè)地方的代碼不同,這篇文章主要介紹了使用Post方式提交數(shù)據(jù)到Tomcat服務(wù)器的方法,感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解

    IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解

    在使用spring、mybatis等框架時(shí),配置文件很復(fù)雜,有時(shí)復(fù)雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問(wèn)題就都不是問(wèn)題
    2021-10-10

最新評(píng)論