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

Mybatis-Plus手動分頁

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

?TableDataInfo


import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 表格分頁數據對象
 *
 * @author Lion Li
 */

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TableDataInfo<T> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 總記錄數
     */
    private long total;

    /**
     * 列表數據
     */
    private List<T> rows;

    /**
     * 消息狀態(tài)碼
     */
    private int code;

    /**
     * 消息內容
     */
    private String msg;

    /**
     * 分頁
     *
     * @param list  列表數據
     * @param total 總記錄數
     */
    public TableDataInfo(List<T> list, long total) {
        this.rows = list;
        this.total = total;
    }

    public static <T> TableDataInfo<T> build(IPage<T> page) {
        TableDataInfo<T> rspData = new TableDataInfo<>();
        rspData.setCode(HttpStatus.HTTP_OK);
        rspData.setMsg("查詢成功");
        rspData.setRows(page.getRecords());
        rspData.setTotal(page.getTotal());
        return rspData;
    }

    public static <T> TableDataInfo<T> build(List<T> list) {
        TableDataInfo<T> rspData = new TableDataInfo<>();
        rspData.setCode(HttpStatus.HTTP_OK);
        rspData.setMsg("查詢成功");
        rspData.setRows(list);
        rspData.setTotal(list.size());
        return rspData;
    }

    public static <T> TableDataInfo<T> build(List<T> list, int total) {
        TableDataInfo<T> rspData = new TableDataInfo<>();
        rspData.setCode(HttpStatus.HTTP_OK);
        rspData.setMsg("查詢成功");
        rspData.setRows(list);
        rspData.setTotal(total);
        return rspData;
    }

    public static <T> TableDataInfo<T> build() {
        TableDataInfo<T> rspData = new TableDataInfo<>();
        rspData.setCode(HttpStatus.HTTP_OK);
        rspData.setMsg("查詢成功");
        return rspData;
    }

}

?serviceImpl.selectPageQueryUserList文章來源地址http://www.zghlxwxcb.cn/news/detail-664806.html

 @Override
    public TableDataInfo<SysUser> selectPageQueryUserList(SysUserBo bo, PageQuery pageQuery) {

        if (StrUtil.isNotEmpty(bo.getKey())) {
            //如果key值為數字,則按照工號查
            if (bo.getKey().matches("^[0-9]+$")) {
                bo.setUserName(bo.getKey());
            }

            //如果key值為中文,則按照姓名查
            if (bo.getKey().matches("^[\\u4e00-\\u9fa5]+$")) {
                bo.setNickName(bo.getKey());
            }
        }


        //根據公司編碼查詢該公司所有用戶
        List<SysUser> firmList = baseMapper.selectUsersByDeptCode(bo);

        //如果key值為字母,則按照‘姓’的拼音查,大小寫均可
        if (StrUtil.isNotEmpty(bo.getKey()) && bo.getKey().matches("^[a-zA-Z]+$")){
            //字母一律轉換為小寫
            String name = bo.getKey().toLowerCase(Locale.ROOT);
            //存放符合搜索條件的數據
            List<SysUser> charNameList = new ArrayList<>();
            for (SysUser sysUser:firmList){
                //定義surname代表姓氏
                char surname = 0;
                //挑出nickName第一個字符
                surname = sysUser.getNickName().charAt(0);

                //挑出第一個字符的拼音
                List<Pinyin> pinyins = HanLP.convertToPinyinList(String.valueOf(surname));
                for (Pinyin pinyin : pinyins) {
//                    String s = String.valueOf(pinyin.getShengmu());
//                    String s1 = String.valueOf(pinyin.getFirstChar());
                    //獲取純字母的拼音
                    String s = String.valueOf(pinyin.getPinyinWithoutTone());
                    //進行匹配
                    if (s.contains(name)) {
                        charNameList.add(sysUser);
                    }
//                    else {
//                        continue;
//                    }
                }
            }
            firmList = charNameList;
        }


        //如果bo.deptId不為空,則在firmPage(公司內)向下查詢所有子部門用戶
        if (bo.getDeptId() != null) {
            // 根據deptId查詢所有子部門id
            List<Long> firmDeptIdList = baseMapper.selectFirmDeptId(bo.getDeptId());
            //根據子部門id篩選firmPage中符合條件的用戶
            firmList = firmList.stream()
                    .filter(user -> firmDeptIdList.contains(user.getDeptId()))
                    .collect(Collectors.toList());

        }

        //如果bo.roleId不為空,則在firmPage(公司內)查詢所有與之關聯(lián)用戶
        if (bo.getRoleId() != null) {
            //根據roleId查詢關聯(lián)的用戶id
            List<Long> userIdList = baseMapper.selectUserIdByRoleId(bo.getRoleId());
            //根據用戶id篩選firmPage中符合條件的用戶
            firmList = firmList.stream()
                    .filter(user -> userIdList.contains(user.getUserId()))
                    .collect(Collectors.toList());

        }

        // 創(chuàng)建Page對象
        Page<SysUser> page = new Page<>();
        if (pageQuery.getPageNum() != null && pageQuery.getPageSize() != null) {
            page.setCurrent(pageQuery.getPageNum());
            page.setSize(pageQuery.getPageSize());

            // 手動分頁,獲取當前頁的數據列表
            int startIndex = (int) ((page.getCurrent() - 1) * page.getSize());
            int endIndex = (int) Math.min(startIndex + page.getSize(), firmList.size());
            List<SysUser> currentList = firmList.subList(startIndex, endIndex);

            // 設置總記錄數和當前頁數據列表
            page.setTotal(firmList.size());
            page.setRecords(currentList);
        } else {
            page.setRecords(firmList);
            page.setTotal(firmList.size());
        }

        return TableDataInfo.build(page);
    }

到了這里,關于Mybatis-Plus手動分頁的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • mybatis-plus實現分頁查詢

    mybatis-plus實現分頁查詢

    分頁查詢使用的方法是: IPage:用來構建分頁查詢條件 Wrapper:用來構建條件查詢的條件,目前我們沒有可直接傳為Null IPage:返回值,你會發(fā)現構建分頁條件和方法的返回值都是IPage IPage是一個接口,我們需要找到它的實現類來構建它,具體的實現類,可以進入到IPage類中按ctrl+

    2023年04月08日
    瀏覽(23)
  • Mybatis-Plus學習4 Page分頁

    Mybatis-Plus學習4 Page分頁

    ctrl + P = 查看可填的屬性類型? alt + 回車 = 自動填充數據類型 1、使用Page分頁需要先配置config類,加上攔截器 type-aliasys-package配置pojo對象別名對應的包 自定義的Mapper的page查詢: 樂觀鎖 和 悲觀鎖 悲觀鎖: 悲觀鎖的思想是,在操作數據之前,先假設其他并發(fā)操作會對數據進行

    2024年02月12日
    瀏覽(16)
  • MyBatis-Plus分頁查詢(快速上手運用)

    MyBatis-Plus分頁查詢(快速上手運用)

    Mybatis-Plus知識點[MyBatis+MyBatis-Plus的基礎運用]_心態(tài)還需努力呀的博客-CSDN博客?? Mybatis-Plus+SpringBoot結合運用_心態(tài)還需努力呀的博客-CSDN博客 MyBaits-Plus中@TableField和@TableId用法_心態(tài)還需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作(通過id更新和條件更新)_心態(tài)還需努力呀的博

    2024年02月16日
    瀏覽(22)
  • Mybatis-plus 分頁 自定義count方法

    使用了mybatisplus 語句中有order by 語法 mybatisplus會使用 select count(*) from (子語句) TOTAL 算出total 但是會報錯 查詢條件QueryWrapper中還有order by排序條件,則生成的select count(*) from(sql) 就會報錯 除非另外還指定了 TOP、OFFSET 或 FOR XML,否則,ORDER BY 子句在視圖、內聯(lián)函數、派生表、子查

    2024年04月23日
    瀏覽(16)
  • MyBatis-Plus自定義分頁模型

    MyBatis-Plus自帶的分頁模型Page有些參數,我覺得不是很必要,因此自定義自己的分頁模型。該類繼承了 IPage 類,實現了簡單分頁模型如果你要實現自己的分頁模型可以繼承 Page 類或者實現 IPage 類。因為Java是單繼承多實現的,所以我們使用實現IPage接口的方式實現我們自己的分

    2024年02月12日
    瀏覽(16)
  • MyBatis-Plus Page 分頁不生效

    一、問題現象 使用 MyBatis-Plus 進行分頁查詢時,傳入了 pageNum 和 pageSize,但是查詢結果沒有按照預期的效果返回。 二、問題原因 沒有對 Mybatis-Puls 進行初始化,需要添加相應的配置類。 三、解決方案 在項目工程中創(chuàng)建 config 目錄,在其中新建配置類 MyBatisPlusConfig.java 。 注意

    2024年02月12日
    瀏覽(14)
  • springboot使用Mybatis-plus分頁插件

    在? pom.xml ? 文件中添加 MyBatis Plus 和分頁插件的依賴: 注意替換? {mybatis-plus-version} ?為對應的版本號。 在 Spring Boot 的配置文件? application.yml ? 中添加分頁插件的配置參數: 注意代碼中的注釋,其中 ? PaginationInterceptor ?表示使用 MyBatis Plus 提供的分頁插件。 在接口層使用

    2024年02月07日
    瀏覽(21)
  • 【SpringBoot】MyBatis與MyBatis-Plus分頁查詢 & github中的PageHelper

    【SpringBoot】MyBatis與MyBatis-Plus分頁查詢 & github中的PageHelper

    ??????? 筆者寫這篇博客是因為近期遇到的關于兩者之間的分頁代碼差距,其實之前也遇見過但是沒有去整理這篇博客,但由于還是被困擾了小一會兒時間,所以還是需要 加深記憶 。其實會看前后端傳參解決這個問題很快、不麻煩。關于這兩個框架的分頁代碼問題主要就

    2024年02月03日
    瀏覽(25)
  • 最新-mybatis-plus 3.5分頁插件配置

    最新-mybatis-plus 3.5分頁插件配置

    前提 1.項目不是springboot, 是以前的常規(guī)spring項目 2.mp 從3.2升級到3.5,升級后發(fā)現原本的分頁竟然不起作用了,每次查詢都是查出所有 前后配置對比 jar包對比 jsqlparser我這里單獨引了包,因為版本太低不能使用嗎,這個依賴直接刪除了,因為mp中本身自己就有這個jar包 以前的配

    2024年02月03日
    瀏覽(46)
  • mybatis-plus分頁查詢三種方法

    mybatis-plus分頁查詢三種方法

    說明: 1、mybatis-plus中分頁接口需要包含一個IPage類型的參數。 2、多個實體參數,需要添加@Param參數注解,方便在xml中配置sql時獲取參數值。 注意這里我雖然加了@Param但是我并沒有使用 這是控制臺打印的查詢語句,大家發(fā)現最后的LIMIT 函數沒,正常來說mybatis-plus里是沒有寫

    2024年01月25日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包