国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MyBatisPlus(SpringBoot版)的分頁插件

這篇具有很好參考價值的文章主要介紹了MyBatisPlus(SpringBoot版)的分頁插件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

?一、前置工作:

? ? ? ? 1.整體項目目錄結(jié)構(gòu)

? ? ? ? 2.創(chuàng)建普通javamaven項目。

? ? ? ??3.導(dǎo)入依賴,改造成springboot項目

????????4.配置啟動類

????????5.創(chuàng)建service接口及其實現(xiàn)類

? ? ? ?6.創(chuàng)建接口Mapper

????????

????????7.配置數(shù)據(jù)源

?? ? ? ?8.創(chuàng)建數(shù)據(jù)庫表

二、使用MP(mybatisplus)的分頁插件

二、使用自定義的分頁插件


?????????MyBatis Plus自帶分頁插件,只要簡單的配置即可實現(xiàn)分頁功能。

?一、前置工作:

? ? ? ? 1.整體項目目錄結(jié)構(gòu)

mybatisplus分頁插件詳解,spring boot,java,數(shù)據(jù)庫

? ? ? ? 2.創(chuàng)建普通javamaven項目。

? ? ? ??3.導(dǎo)入依賴,改造成springboot項目

????????依賴:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.qcby</groupId>
    <artifactId>SpringBootMybatisPlus</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

????????4.配置啟動類

package com.qcby;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.qcby.SpringBoot.mapper")
public class SpringBootApplication1 {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootApplication1.class, args);
    }
}

? ? ? ? 5.配置實體類

package com.qcby.SpringBoot.pojo;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("t_product")
public class Product {
    private Long id;
    private String name;
    private Integer price;
    private Integer version;
}
package com.qcby.SpringBoot.pojo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data //set和get方法
@AllArgsConstructor //全參構(gòu)造器
@NoArgsConstructor  //無參構(gòu)造器
@TableName("t_user")
public class User {
    //因為用到雪花算法,所以用Long屬性
    @TableId
    private Long id;
    private String name;
    private Integer age;
    private String email;
    @TableLogic
    private Integer isDeleted;
}

????????5.創(chuàng)建service接口及其實現(xiàn)類

package com.qcby.SpringBoot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qcby.SpringBoot.pojo.User;

/**
 * UserService繼承IService模板提供的基礎(chǔ)功能
 */
public interface UserService extends IService<User> {
}
package com.qcby.SpringBoot.service.Impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qcby.SpringBoot.mapper.UserMapper;
import com.qcby.SpringBoot.pojo.User;
import com.qcby.SpringBoot.service.UserService;
import org.springframework.stereotype.Service;

/**
 * ServiceImpl實現(xiàn)了IService,提供了IService中基礎(chǔ)功能的實現(xiàn)
 * 若ServiceImpl無法滿足業(yè)務(wù)需求,則可以使用自定的UserService定義方法,并在實現(xiàn)類中實現(xiàn)
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

}

? ? ? ?6.創(chuàng)建接口Mapper

package com.qcby.SpringBoot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qcby.SpringBoot.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper extends BaseMapper<User> {
    
}

????????

package com.qcby.SpringBoot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qcby.SpringBoot.pojo.Product;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface ProductMapper extends BaseMapper<Product> {
}

????????7.配置數(shù)據(jù)源

? ? ? ? 在application.yaml中配置信息。

spring:
  # 配置數(shù)據(jù)源信息
  datasource:
    # 配置數(shù)據(jù)源類型
    type: com.zaxxer.hikari.HikariDataSource
    # 配置連接數(shù)據(jù)庫信息
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
    username: root
    password: root
# 配置MyBatis日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

?? ? ? ?8.創(chuàng)建數(shù)據(jù)庫表

mybatisplus分頁插件詳解,spring boot,java,數(shù)據(jù)庫

mybatisplus分頁插件詳解,spring boot,java,數(shù)據(jù)庫

二、使用MP(mybatisplus)的分頁插件

? ? ? ? 首先要在容器中配置一個mybatisplus分頁插件的bean。

? ? ? ? 可以自定義一個配置類,也可以在啟動類中配置,因為啟動類也是一個配置類。

package com.qcby.SpringBoot.config;

import com.baomidou.mybatisplus.annotation.DbType;
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 {
    /**
     * 分頁插件
     * 構(gòu)建一個攔截來處理分頁
     * 每個數(shù)據(jù)庫廠商對于分頁的實現(xiàn)語法有差別,因此,在聲明該攔截時,需要指定應(yīng)用的數(shù)據(jù)庫類型
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new
                PaginationInnerInterceptor(DbType.MYSQL));//由于各個數(shù)據(jù)庫的語法會有差別,因此,要指明數(shù)據(jù)庫類型
        return interceptor;
    }
}

? ? ? ? 編寫測試類

package com.qcby;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qcby.SpringBoot.mapper.ProductMapper;
import com.qcby.SpringBoot.mapper.UserMapper;
import com.qcby.SpringBoot.pojo.Product;
import com.qcby.SpringBoot.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class Test2 {
    @Autowired
    private UserMapper userMapper;

    @Autowired
    private ProductMapper productMapper;

    @Test
    public void testPage(){
        //設(shè)置分頁參數(shù)
        Page<User> page = new Page<>(1, 5);
        userMapper.selectPage(page, null);
        //獲取分頁數(shù)據(jù)
        List<User> list = page.getRecords();
        list.forEach(System.out::println);
        System.out.println("當前頁:"+page.getCurrent());
        System.out.println("每頁顯示的條數(shù):"+page.getSize());
        System.out.println("總記錄數(shù):"+page.getTotal());
        System.out.println("總頁數(shù):"+page.getPages());
        System.out.println("是否有上一頁:"+page.hasPrevious());
        System.out.println("是否有下一頁:"+page.hasNext());
    }

}

二、使用自定義的分頁插件

? ? ? ? 在usermapper中加入方法文章來源地址http://www.zghlxwxcb.cn/news/detail-860366.html

package com.qcby.SpringBoot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qcby.SpringBoot.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper extends BaseMapper<User> {
    /**
     * 根據(jù)年齡查詢用戶列表,分頁顯示
     * @param page 分頁對象 ,xml中可以從里面進行取值 ,傳遞參數(shù) Page 即自動分頁 ,必須放在第一位
     * @param age 年齡
     * @return
     */
    /**
     * 不用加limit語句,因為配置了一個攔截的插件,只需要傳入page對象,還是使用的MP的分頁插件
     * @param page
     * @param age
     * @return
     */
    @Select("SELECT id,name,age,email FROM t_user WHERE age > #{age}")
    IPage<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age);
}
package com.qcby;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qcby.SpringBoot.mapper.ProductMapper;
import com.qcby.SpringBoot.mapper.UserMapper;
import com.qcby.SpringBoot.pojo.Product;
import com.qcby.SpringBoot.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class Test2 {
    @Autowired
    private UserMapper userMapper;

    @Autowired
    private ProductMapper productMapper;

    @Test
    public void testSelectPageVo(){
        //設(shè)置分頁參數(shù)
        Page<User> page = new Page<>(1, 5);
        userMapper.selectPageVo(page, 20);
        //獲取分頁數(shù)據(jù)
        List<User> list = page.getRecords();
        list.forEach(System.out::println);
        System.out.println("當前頁:"+page.getCurrent());
        System.out.println("每頁顯示的條數(shù):"+page.getSize());
        System.out.println("總記錄數(shù):"+page.getTotal());
        System.out.println("總頁數(shù):"+page.getPages());
        System.out.println("是否有上一頁:"+page.hasPrevious());
        System.out.println("是否有下一頁:"+page.hasNext());
    }
}

到了這里,關(guān)于MyBatisPlus(SpringBoot版)的分頁插件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot框架——8.MybatisPlus常見用法(常用注解+內(nèi)置方法+分頁查詢)

    SpringBoot框架——8.MybatisPlus常見用法(常用注解+內(nèi)置方法+分頁查詢)

    1.MybatisPlus常用注解: ? ? ? ? 1.1 當數(shù)據(jù)庫、表名和字段名和實體類完全一致時無需加注解,不一致時: ? ? ? ? @TableName指定庫名 ? ? ? ? @TableId指定表名 ? ? ? ? @TableField指定字段名 ? ? ? ? 1.2 自增主鍵: ????????@TableId(type=IdType.AUTO) ? ? ? ? private Long id; ? ? ? ?

    2024年04月26日
    瀏覽(19)
  • springboot和vue:七、mybatis/mybatisplus多表查詢+分頁查詢

    springboot和vue:七、mybatis/mybatisplus多表查詢+分頁查詢

    mybatisplus實際上只對單表查詢做了增強(速度會更快),從傳統(tǒng)的手寫sql語句,自己做映射,變?yōu)榉庋b好的QueryWrapper。 本篇文章的內(nèi)容是有兩張表,分別是用戶表和訂單表,在不直接在數(shù)據(jù)庫做表連接的情況下,通過后臺代碼完成①查詢訂單的同時查到該訂單所屬的用戶,②

    2024年02月07日
    瀏覽(21)
  • 單個數(shù)據(jù)源與多數(shù)據(jù)源使用mybatisplus分頁插件total一直為0的解決辦法

    1. 注冊分頁插件( 不注冊分頁插件total也是0) : 注意:如果是 單數(shù)據(jù)源 此時分頁插件能正常使用,而 如果是多數(shù)據(jù)源 ,那么就必須添加以下內(nèi)容,否則分頁時查詢總數(shù)total還是0 2. 多數(shù)據(jù)源定義: 重點就是以下兩行:? Interceptor[] interceptors = new Interceptor[] { mybatisPlusInterc

    2024年04月25日
    瀏覽(18)
  • MybatisPlus 超好用的idea代碼生成插件,及使用詳解

    MybatisPlus 超好用的idea代碼生成插件,及使用詳解

    文章目錄 前言 一、MybatisPlus簡介 二、MybatisPlus 代碼生成插件 1.插件安裝與配置 2.生成代碼結(jié)構(gòu)、內(nèi)容展示 3.表新增字段,重新生成實體類覆蓋? 總結(jié) 新需求來了,又添加了好幾張表,總不能手寫或者復(fù)制之前的代碼,再一通修改吧?! 一張表需要添加好幾個新字段,往實體

    2024年01月24日
    瀏覽(27)
  • mybatisplus的幾種分頁方式

    官方文檔中給出了幾種分頁方式,挨個舉例說明一下 這三種 Mybatis Plus 分頁方式的區(qū)別主要在于傳遞參數(shù)的方式和返回結(jié)果的類型。 IPage selectPageVo(IPage? page, Integer state) 這種方式需要傳入一個 IPage 對象作為分頁參數(shù),其泛型類型可以是任何實體類。方法返回值也是一個 IPage 對

    2024年02月07日
    瀏覽(24)
  • Mybatis中的分頁插件

    目錄 一.為什么要使用分頁插件? 二.分頁常用標簽 三.分頁插件的使用 ????????1.在mybatis的pom中添加分頁插件依賴 ????????2.在mybatis-config.xml中創(chuàng)建分頁插件 3.在test文件中進行查詢操作的時候,開啟分頁功能 ?????? PageInfo() ????????PageHelper.startPage(); 總結(jié): 不必

    2023年04月13日
    瀏覽(21)
  • SpringBoot與MybatisPlus MybatisPlus

    SpringBoot與MybatisPlus MybatisPlus

    MyBatis-Plus(簡稱 MP)是一個MyBatis的增強工具,在MyBatis的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。 MyBatisPlus的愿景是成為MyBatis最好的搭檔,就像魂斗羅中的1P、2P,基友搭配,效率翻倍。 官方網(wǎng)址:MyBatis-Plus? 1、創(chuàng)建SpringBoot項目,添加MyBatisPlus起步依賴 2、在

    2024年02月12日
    瀏覽(16)
  • MyBatisPlus學(xué)習(xí)筆記五-插件功能

    MyBatisPlus學(xué)習(xí)筆記五-插件功能

    MyBatisPlus 提供的內(nèi)置攔截器有下面這些 需求: 在 PageQuery 中定義方法,將 PageQuery 對象轉(zhuǎn)為 MyBatisPlus 中的 Page對象 在 PageDTO 中定義方法,將 MyBatisPlus 中的 Page 結(jié)果轉(zhuǎn)為 PageDTO 結(jié)果

    2024年01月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包