当前位置: 首页 > news >正文

SpringBoot+Mybatis 分页

无论多数据源,还是单数据源,分页都一样,刚开始出了点错,是因为PageHelper的版本问题

这里用的SpringBoot3    SpringBoot2应该是没有问题的

相关代码

dynamic-datasource+Mybatis多数据源使用-CSDN博客

依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.8</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>dynamic-datasource</artifactId><version>0.0.1-SNAPSHOT</version><name>dynamic-datasource</name><description>Demo project for Spring Boot</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!--dynamic-datasource --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot3-starter</artifactId><version>4.3.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.21</version></dependency><!--分页 低版本要自己额外配置下 -->
<!--        <dependency>-->
<!--            <groupId>com.github.pagehelper</groupId>-->
<!--            <artifactId>pagehelper-spring-boot-starter</artifactId>-->
<!--            <version>1.3.1</version>-->
<!--        </dependency>--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

PageHelper配置

#PageHelper 配置
#推荐明确指定数据库方言
pagehelper.helperDialect=mysql
#合理化分页参数,避免异常页码导致的错误  启用后,当 pageNum 小于等于 0 时,会自动查询第一页的数据;当 pageNum 大于总页数时,会自动查询最后一页的数据。
pagehelper.reasonable=true
#支持通过方法参数传递分页参数  PageHelper.startPage(1,2)
pagehelper.supportMethodsArguments=true
#自动生成 count 查询语句用于计算总记录数(默认配置)
pagehelper.params=count=countSql
#在运行时自动识别和设置数据库方言
#pagehelper.autoRuntimeDialect=true

持久层   PageHelper会拦截sql  拼接 select * from xxx limit (pageNum-1)*pageSize,pageSize

如果非要在SpringBoot3使用低版本PageHelper

package com.example.dynamicdatasource.config;import com.github.pagehelper.PageInterceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;
import java.util.Properties;/*** @author hrui* @date 2024/8/6 21:03*/
@Configuration
public class MyBatisConfig {/*因使用的SpringBoot3  低版本PageHelp要额外配置   application.properties中的pageHelp无法set到参数  高版本没有问题 不需要设置*/
//    @Bean
//    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
//        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
//        factoryBean.setDataSource(dataSource);
//
//        // 添加PageHelper分页插件
//        PageInterceptor pageInterceptor = new PageInterceptor();
//        Properties properties = new Properties();
//        properties.setProperty("helperDialect", "mysql");
//        properties.setProperty("reasonable", "true");
//        properties.setProperty("supportMethodsArguments", "true");
//        properties.setProperty("params", "count=countSql");
//        pageInterceptor.setProperties(properties);
//
//        configuration.addInterceptor(pageInterceptor);
//        factoryBean.setConfiguration(configuration);
//        return factoryBean.getObject();
//    }
}

相关文章:

SpringBoot+Mybatis 分页

无论多数据源,还是单数据源,分页都一样,刚开始出了点错,是因为PageHelper的版本问题 这里用的SpringBoot3 SpringBoot2应该是没有问题的 相关代码 dynamic-datasourceMybatis多数据源使用-CSDN博客 依赖 <?xml version"1.0" encoding"UTF-8"?&g…...

学习进行到了第十七天(2024.8.5)

1.Mybatis的定义 数据持久化是将内存中的数据模型转换为存储模型&#xff0c;以及将存储模型转换为内存中数据模型的统称。例如&#xff0c;文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。MyBatis 支持定制化 SQL、存储过程以及高级映射&#xff0c;可以…...

【Nuxt】Layout 布局和渲染模式

NuxtLayout app.vue <NuxtLayout><NuxtPage/></NuxtLayout>然后默认的布局 需要 写在 ~/layouts/default.vue 下面&#xff0c;其他自定义的布局也在写在 layouts 目录下。 default.vue <template><div class"app-container"><d…...

C:指针学习(1)-学习笔记

目录 前言&#xff1a; 知识回顾&#xff1a; 1、const 1.1 const修饰普通变量 1.2 const修饰指针变量 1.3 总结&#xff1a; 2、指针运算 2.1 指针-整数 2.2 指针-指针 2.3 指针的关系运算 3、指针的使用 结语&#xff1a; 前言&#xff1a; 距离上一次更新关于初…...

【LVS】负载均衡之NAT模式

一、LVS概念 LVS&#xff08;Linux Virtual Server&#xff09;是一个基于Linux操作系统的虚拟服务器技术&#xff0c;用于实现负载均衡和高可用性。LVS通过将客户端的请求分发到多台后端服务器上&#xff0c;从而提高整体服务的处理能力和可靠性。 二、LVS优势 高性能&…...

ASP.NET Core 基础 - 入门实例

一. 下载 1. 下载vs2022 Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) 学生,个人开发者选择社区版就行,免费的. 安装程序一直下一步下一步就行,别忘了选择安装位置,如果都放在C盘的话,就太大了. 2. 选择工作负荷 准备工作完成 二. 创建新项目 三…...

机器人主板维修|ABB机械手主板元器件故障

【ABB机器人电路板故障原因诊断】 针对上述故障现象&#xff0c;我们需要对ABB机器人IO板进行详细的故障诊断。以下是一些可能的故障原因&#xff1a; 1. 元器件老化或损坏&#xff1a;ABB机械手安全面板上的元器件在长期使用过程中可能出现老化、损坏或接触不良等问题&#xf…...

大数据Flink(一百零六):什么是阿里云实时计算Flink版

文章目录 什么是阿里云实时计算Flink版 一、产品概述 二、产品架构 三、产品优势 什么是阿里云实时计算Flink版 阿里云实时计算Flink版是一套基于Apache Flink构建的⼀站式实时大数据分析平台&#xff0c;提供端到端亚秒级实时数据分析能力&#xff0c;并通过标准SQL降低业…...

ERCOT中的专业术语解释

在ERCOT中&#xff0c;ECRSM 代表的是 “Emergency Contingency Resource Supplementary Market”。这个术语涉及到紧急备用资源市场&#xff0c;用于应对电力需求或供应的紧急情况。在ERCOT电网中&#xff0c;当系统面临极端情况或资源不足时&#xff0c;ECRSM 可以帮助确保电…...

Python酷库之旅-第三方库Pandas(069)

目录 一、用法精讲 276、pandas.Series.dt.is_quarter_start属性 276-1、语法 276-2、参数 276-3、功能 276-4、返回值 276-5、说明 276-6、用法 276-6-1、数据准备 276-6-2、代码示例 276-6-3、结果输出 277、pandas.Series.dt.is_quarter_end属性 277-1、语法 …...

基于hutools的国密SM2、3、4

文章目录 前言一. 代码 前言 最近还要深度研究hutools底层实现&#xff0c;一定要搞透澈&#xff0c;本章将会是持续更新 参考资料&#xff1a; Java代码实现SM2算法以及注意点总结&#xff08;踩坑记录&#xff09; 国密算法工具Smutil 一. 代码 import cn.hutool.core.uti…...

进程的等待(非阻塞轮询+阻塞)和替换控制详解

引言 在Linux系统中&#xff0c;进程管理是核心功能之一。理解进程的创建、执行和终止是系统编程中的基础。本文将深入探讨Linux中的进程控制机制&#xff0c;包括进程的生命周期、父子进程的交互、以及进程状态的管理 1. 进程创建&#xff1a;fork()函数 在Linux操作系统中…...

24/8/6算法笔记 支持向量机

支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种监督学习算法&#xff0c;主要用于分类和回归任务。它基于统计学习理论中的结构风险最小化原理&#xff0c;通过找到数据点之间的最优边界来实现模型的泛化能力。 import numpy as np import matplotlib.…...

测试用例等级划分

基本等级&#xff08;‌Level 1或P0&#xff09;‌&#xff1a;‌这类用例设计系统基本功能&#xff0c;‌执行失败会导致多处重要功能无法运行。‌例如&#xff0c;‌单表维护中的增加功能、‌最平常的业务使用等&#xff0c;‌这些是发生概率较高的功能用例。‌这类用例在每一…...

打造Perl编译器前端:自定义语言处理的魔法

打造Perl编译器前端&#xff1a;自定义语言处理的魔法 Perl是一种强大而灵活的编程语言&#xff0c;它提供了丰富的文本处理能力&#xff0c;使其成为实现自定义编译器前端的理想选择。编译器前端通常负责源代码的词法分析、语法分析和语义分析。本文将详细介绍如何在Perl中实…...

Visual Studio 和 Visual Studio Code 的比较与应用偏向

Visual Studio 和 Visual Studio Code&#xff08;VS Code&#xff09;是微软开发的两个不同的开发工具&#xff0c;各有特点和优势&#xff0c;适用于不同的开发需求。下面是详细的比较和在实际应用中的偏向。 功能和特性 Visual Studio 完整的IDE&#xff1a;支持多种编程…...

Python打开JSON/CSV文件的正确方式(针对UnicodeDecodeError)

前言 我们在使用python的过程中&#xff0c;经常需要它完成一些数据处理的工作&#xff0c;其中尤以json/csv文件为常见。今天&#xff0c;博主针对UnicodeDecodeError异常进行试验&#xff0c;因为这个是新手最容易犯错的地方。 Q&#xff1a;如何应对 UnicodeDecodeError 读…...

深入解析TikTok广告开户白名单:规范与申请指南

在TikTok的广告平台上&#xff0c;白名单&#xff08;Whitelist&#xff09;系统作为一种重要的审核和管理机制&#xff0c;对广告账户的开设与运营起着至关重要的作用。 一、什么是TikTok广告开户白名单&#xff1f; 白名单的定义 白名单是一种预先批准的账户或广告内容列表…...

CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效

CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效 今天给大家分享一个纯CSS按钮水晶按钮,效果很赞,希望对大家有所帮助。 本例图片 案例分析 这个按钮看起来效果很赞,我们分析一下它由几个层组成: 1. 按钮本体:渐变层+按钮文字 2.用before伪元素实现高光层+内…...

ArcGIS基础:基于数据图框实现地理坐标系下不同投影转换的可视化效果

ArcGIS默认以第一次加载数据的坐标系决定整个工程的坐标系 可以通过改变数据框的投影坐标系&#xff0c;对地理数据进行快速投影变换&#xff0c;以可视化展示不同投影坐标系下的地理数据形状和形态 对数据框坐标系的改变&#xff0c;只是针对的显示参数的改变&#xff0c;并…...

Mapshaper:免费开源地图数据编辑器的完整使用指南

Mapshaper&#xff1a;免费开源地图数据编辑器的完整使用指南 【免费下载链接】mapshaper Tools for editing Shapefile, GeoJSON, TopoJSON and CSV files 项目地址: https://gitcode.com/gh_mirrors/ma/mapshaper 还在为复杂的地理数据处理而烦恼吗&#xff1f;Mapsha…...

流程图:符号背后的逻辑与高效设计技巧

1. 流程图符号的底层逻辑解析 第一次接触流程图时&#xff0c;很多人会被那些看似简单的图形符号搞得晕头转向。我刚开始画流程图时&#xff0c;经常把菱形和矩形搞混&#xff0c;结果画出来的流程图逻辑完全错乱。直到后来系统学习了符号背后的设计哲学&#xff0c;才发现每个…...

使用Anaconda配置清华镜像源加速PyTorch安装

1. 为什么需要配置清华镜像源&#xff1f; 如果你在国内使用Anaconda安装PyTorch&#xff0c;可能会遇到下载速度慢、安装失败的问题。这主要是因为PyTorch的默认下载源位于国外服务器&#xff0c;网络传输距离远&#xff0c;再加上某些网络限制&#xff0c;导致下载速度很不理…...

如何用OpenCore Legacy Patcher让旧Mac焕发新生?3个核心技巧揭秘

如何用OpenCore Legacy Patcher让旧Mac焕发新生&#xff1f;3个核心技巧揭秘 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你的旧Mac还在跑着过时的macOS版…...

Oracle数据库sqlplus登录卡死问题排查与fast_recovery_area空间优化

1. 当sqlplus登录突然卡死时&#xff0c;我该从哪里入手&#xff1f; 上周五凌晨2点&#xff0c;我被一阵急促的电话铃声惊醒。客户的生产数据库突然无法登录&#xff0c;所有运维人员通过sqlplus连接时都卡在登录界面&#xff0c;连CtrlC都无法中断。这种场景对DBA来说就像半夜…...

家庭NAS搭建避坑指南:从硬件选购到TrueNAS配置的全流程心得

家庭NAS搭建实战&#xff1a;从零避坑到高效配置的全方位指南 为什么你需要一台家庭NAS&#xff1f; 记得三年前那次硬盘突然崩溃的经历吗&#xff1f;我丢失了孩子出生以来的所有照片和视频&#xff0c;那种懊悔至今难忘。正是这次教训让我意识到&#xff0c;家庭数据存储不能…...

从B站视频到毕业设计:三相四桥臂的三种主流控制方案到底怎么选?(MPC/3D-SVPWM/载波调制深度对比)

三相四桥臂逆变器控制方案深度对比&#xff1a;从理论到工程实践的选择指南 在电力电子领域&#xff0c;三相四桥臂逆变器的控制策略选择一直是工程师和研究者面临的关键挑战。不同于传统的三相三桥臂结构&#xff0c;第四桥臂的引入虽然解决了不平衡负载下的中性点电流问题&a…...

告别云端!用Ollama本地运行Yi-Coder-1.5B,保护代码隐私的终极方案

告别云端&#xff01;用Ollama本地运行Yi-Coder-1.5B&#xff0c;保护代码隐私的终极方案 1. 为什么选择本地代码生成模型&#xff1f; 在软件开发过程中&#xff0c;我们经常需要快速生成代码片段、解决编程问题或理解复杂逻辑。传统做法是使用云端代码生成服务&#xff0c;…...

​从散户到 “跟庄” | 职业交易者的聪明金钱心法 :看结构、抓流动性,提高胜率!​

从散户到 “跟庄” | 职业交易者的聪明金钱心法 :看结构、抓流动性,提高胜率! 聪明金钱概念是交易中能帮你建立巨大盈利优势的核心逻辑——它能让你看透价格走势的本质,精准找到高盈亏比入场点,而不是被表面波动牵着走。 今天就把聪明金钱的核心逻辑、实战方法和交易设置…...

看看MusePublic能做什么?高清、细腻光影的艺术人像生成案例分享

看看MusePublic能做什么&#xff1f;高清、细腻光影的艺术人像生成案例分享 1. 惊艳的艺术人像生成效果 当我第一次看到MusePublic生成的艺术人像时&#xff0c;确实被惊艳到了。这不是普通的AI生成图片&#xff0c;而是充满艺术感和故事性的作品。光影的处理尤其出色&#x…...