Mybatis分页查询用PageHelper插件

首先看接口文档需求

看响应数据样例,那么咱们先自定义一个bean来满足这个需求,这里定义PageBean实体类

package com.itheima.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;//分页返回结果对象
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean <T>{private Long total;//总条数private List<T> items;//当前页数据集合
}

 下面为Controller

 下面为ServiceImpl

 @Overridepublic PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state) {//1.创建PageBean对象PageBean<Article> pb = new PageBean<>();//2.开启分页查询 PageHelperPageHelper.startPage(pageNum, pageSize);//3.调用mapperMap<String, Object> map = ThreadLocalUtil.get();Integer userId = (Integer) map.get("id");List<Article> as = articleMapper.list(userId, categoryId, state);//Page中提供了方法,可以提供PageHelper分页查询  得到的总记录条数和当前页的数据Page<Article> p = (Page<Article>) as;//把数据填写到PageBean对象中pb.setTotal(p.getTotal());pb.setItems(p.getResult());return pb;}

mapper中的方法

下面为mapper映射文件,动态sql

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--注意:不同的Mapper文件 空间名值唯一  空间名值+id-->
<mapper namespace="com.itheima.mapper.ArticleMapper"><select id="list" resultType="com.itheima.pojo.Article">select * from article<where><if test="categoryId!=null">category_id=#{categoryId}</if><if test="state!=null">and state=#{state}</if>and create_user=#{userId}</where></select>
</mapper>

看一下PostMan中结果,符合要求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu-22.04安装Virtualbox并安装Windows10

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Virtualbox是什么&#xff1f;二、安装Virtualbox1.关闭Secure Boot2.安装 三、安装Windows101.新装虚拟机基本配置2.新装虚拟机核心配置 总结 前言 虚拟机…

Harmony鸿蒙南向驱动开发-UART

UART指异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;是通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输。 两个UART设备的连接示意图如下&#xff0c;UART与其他模块一般用2线&a…

内置模块和开发规范(3)

内置模块和开发规范 1.内置模块 1.json json模块&#xff0c;是python内部的一个模块&#xff0c;可以将python的数据格式转换为json格式的数据&#xff0c;也可以将json格式转换为python的数据格式 json格式&#xff0c;是一个数据格式(本质上就是字符串&#xff0c;常用于…

记录一个Kafka客户端Offset Explore连不上的问题

CSDN上的其他人不知道咋想的&#xff0c;这么简单一个问题都要写个收费的回答。那我来写个不收费的&#xff0c; 我昨天把集群重装了一下&#xff0c;再连这个工具就连不上了&#xff08;你先把zk和kafka在集群启起来&#xff09;&#xff0c;报错截图如下&#xff1a; 英文翻…

中位数和众数-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第49讲。 中位数和众数&…

MySQL 用来查询表结构的 SQL 语句

文章目录 背景&#xff1a; 在项目的总体设计中&#xff0c; 关于数据库设计中的逻辑设计&#xff0c; 需要用到表结构&#xff0c;可以使用如下 SQL 语句直接查询。 SELECTTABLE_SCHEMA as 数据库名,TABLE_NAME as 表名,ORDINAL_POSITION as 序号,COLUMN_NAME as 字段名,COLUM…

Leetcode-1702-修改后的最大二进制字符串-c++

题目详见https://leetcode.cn/problems/maximum-binary-string-after-change/ 官方题解 我们从字符串左边第一位开始依次遍历&#xff0c;如果是 1 则不用改变&#xff0c;如果是 0&#xff0c;我们则想办法将其变成 1。 我们会找到下一位出现的 0&#xff0c;利用操作 2 我们…

git修改某个远端服务器的地址的方式以及4种remote

假设本地有1个远端仓库&#xff0c;默认一般叫origin&#xff0c;原来对应的git url是&#xff1a;gitxxx.git # 查看方式&#xff1a; git remote -v# 修改方式&#xff1a; git地址url指定远程仓库&#xff1a;&#xff08;常用&#xff09; git remote set-url origin gitn…

大宋咨询(深圳神秘顾客调查)开展某银行分行神秘顾客检查

银行神秘顾客检查是一项重要的服务质量控制活动&#xff0c;旨在通过模拟客户体验来评估银行服务的质量和水平。这种检查方式有助于银行发现问题、改进服务&#xff0c;提升客户满意度。下面将详细介绍如何进行银行神秘顾客检查。大宋咨询&#xff08;深圳银行神秘顾客公司&…

深入浅出Redis(十二):Redis的排序命令Sort

引言 Redis是一款快速、优秀的键值对数据库&#xff0c;提供丰富的数据结构能在各种场景下实现功能&#xff0c;同时也提供丰富的命令来完成各种各样的功能&#xff0c;本篇文章将深入浅出的解析Sort命令的原理以及使用 原理 Sort 命令用来对list、set、zset对象进行排序&am…

springboot组件的单例模式和分布式分析

springboot组件的单例模式和分布式分析 一、基本概念 在Spring Boot应用中&#xff0c;单例模式是非常常见的一种设计模式&#xff0c;它被广泛应用于Bean的生命周期管理。Spring容器默认会将所有的Component、Service、Repository和Controller注解标记的类作为单例对象进行实…

JavaEE实验三:3.5学生信息查询系统(动态Sql)

题目要求: 使用动态SQL进行条件查询、更新以及复杂查询操作。本实验要求利用本章所学知识完成一个学生信息系统&#xff0c;该系统要求实现3个以下功能: 1、多条件查询&#xff1a; 当用户输入的学生姓名不为空&#xff0c;则根据学生姓名进行学生信息的查询&#xff1b; 当用户…

Day:006(1) | Python爬虫:高效数据抓取的编程技术(爬虫工具)

selenium介绍与安装 Selenium是一个Web的自动化测试工具&#xff0c;最初是为网站自动化测试而开发的&#xff0c;类型像我们玩游戏用的按键精灵&#xff0c;可以按指定的命令自动操作&#xff0c;不同是Selenium 可以直接运行在浏览器上&#xff0c;它支持所有主流的浏览器&am…

C++11 设计模式1. 模板方法(Template Method)模式学习。UML图

一 什么是 "模板方法&#xff08;Template Method&#xff09;模式" 在固定步骤确定的情况下&#xff0c;通过多态机制在多个子类中对每个步骤的细节进行差异化实现&#xff0c;这就是模板方法模式能够达到的效果。 模板方法模式属于&#xff1a;行为型模式。 二 &…

个人网站开发记录(七)——三系统后端nodejs+express

前言 这种已经完全工程化了的&#xff08;&#xff09;后端其实已经没啥好说的了&#xff0c;因为就是单纯的写接口然后调用接口就完事了&#xff01; 正文 唯一值得一提的大概是我在写这个系统的时候搞了https的链接&#xff0c;具体来说就是先申请一个ssl证书&#xff0c;…

2024-4-10-day13-实战:商城首页(上)

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 ✍作业 ✍作业 .bg-backward {width: 60px; height: 60px;background: url(..…

Unity 通过权重做随机

我们可以通过Random.Range方法结合权重来实现随机选择。具体步骤如下&#xff1a; 首先&#xff0c;创建一个数组&#xff0c;其中包含你要选择的项目&#xff0c;并为每个项目分配一个权重值。 计算所有权重值的总和。 使用Random.Range生成一个介于0和总权重之间的随机数。…

Jmeter常用参数化技巧总结

JMeter是一个开源的Java应用&#xff0c;用于加载功能测试和性能测量。在测试过程中&#xff0c;我们经常需要对测试数据进行参数化&#xff0c;以便模拟不同的用户场景和数据输入。以下是一些常用的JMeter参数化技巧总结&#xff1a; CSV Data Set Config&#xff1a; 使用CSV…

Oracle通过函数动态拼接SQL并返回执行结果

最近接到优化程序的工作&#xff0c;程序使用kettle编写&#xff0c;有一段业务处理&#xff0c;需要使用kettle遍历动态拼接执行SQL(数据库(oracle)中存储SQL的查询条件&#xff0c;例如&#xff1a;AND ITEMK001)&#xff1b;测试发现kettle遍历非常耗时(情理中&#xff0c;遍…

常见分类算法

一、ChatGPT 在人工智能和机器学习领域&#xff0c;分类算法是一种监督学习技术&#xff0c;用来识别输入数据所属的类别。以下是一些常见的分类算法&#xff1a; 1. 决策树&#xff08;Decision Trees&#xff09;: 决策树通过创建一系列的问题或决策&#xff0c;来将数据…