分页查询实现

news2024/9/27 15:31:21

目录

1.实体类

2.Mapper层

2.1.xxxMapper接口

2.2.xxxMapper.xml文件

3.Service层

3.1.xxxService接口

3.2.xxxServiceImpl层

4.xxxController层

5.调用接口

6.总结

1.实体类

与数据库交互和与前端交互的实体类

这个Model是与数据库交互的实体类,其中的属性要与数据库中的字段对应,比如数据库字段为model_id:int8,那么实体类中就得是Long modelId这样的。然后这个Model中首先一定要跟数据库一一对应,然后可以多添加属性,这里因为要分页查询,所以要在Model里面添加pageNum和pageSize属性。

这个ModelV1是写的与前端交互的一个实体类,写在vo层的,就是我把要展示给前端的那些属性都写在里面了(也可以直接将写的Model类传给前端,看自己需求)如果Model中有一个不能缺少的属性,然后给前端展示的时候不需要展示这个属性,那么这时写一个ModleV1,来展示给前端就比较好。

总结就是:与数据库交互的实体类,首先确保属性与数据库字段一一对应,其次在这个基础上可以按需添加一些其他属性。与前端交互的实体类按你要传给前端的内容编写。

2.Mapper层

2.1.xxxMapper接口

这里的查询方法是是根据需求写的条件查询,其实就是正常的查询加上if条件

返回值是List<ModelV1>(返回给前端看),入参是Model对象(与数据库交互)

//根据条件查询列表
List<ModelV1> queryModelByConditions(Model queryConditions);

2.2.xxxMapper.xml文件

<!-- 查询全部(条件查询)  自己需要依据查询条件选择那些字段留下来 -->
    <select id="queryModelByConditions" parameterType="xxx.xxx.xxx.index.domain.Model" resultType="xxx.xxx.xxx.index.domain.vo.ModelV1">
		SELECT
        t.id as id
        , t.model_name as modelName
        , t.model_description as modelDescription
        , (select title from params where id = t.model_type) as modelType
        , t.report_id as reportId
        , t.topic_id as topicId
        , t.create_user_id as createUserId
        , t.create_time as createTime
        , t.update_user_id as updateUserId
        , t.update_time as updateTime
        , t.del_flag as delFlag        
		FROM model t
        where 1=1
        and t.del_flag = 0
       <if test="modelName != null and modelName != ''" > AND model_name like concat('%',#{modelName},'%')  </if>
       <if test="modelType != null" > AND model_type = #{modelType}  </if>
	</select>

这个查询就是简单的按需查询

3.Service层

3.1.xxxService接口

3.2.xxxServiceImpl层

这里直接是使用封装类来实现的(具体原理我还不是很明白,先用就完事了)

@Override
    public BaseResponseVM getModelLists(Model model) {
        PageHelper.startPage(model.getPageNum(),model.getPageSize());
        List<ModelV1> models = modelMapper.queryModelByConditions(model);
        PageInfo<ModelV1> pageInfo = new PageInfo<>(models);
        return BaseResponseVM.getSuccessInstance(pageInfo);
    }

4.xxxController层

5.调用接口

{
    "pageNum":1,  
    "pageSize":15,
    "modelType":"27"
    
}

6.总结

创建实体类(包含pageNum和pageSize),正常编写mapper,看3.service层

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

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

相关文章

python调用GPT实现:智能用例生成工具

工具作用&#xff1a; 根据输入的功能点&#xff0c;生成通用测试点 实现步骤 工具实现主要分2个步骤&#xff1a; 1.https请求调用Gpt,将返回响应结果保存为.md文件 2.用python实现 将 .md文件转换成.xmind文件 3.写个简单的前端页面&#xff0c;调用上述步骤接口 详细代…

7个数据科学Python库将为您节省大量时间

7个数据科学Python库将为您节省大量时间 在进行数据科学时&#xff0c;您可能会花费大量时间编写代码并等待计算机运行某些操作。我挑选了一些可以在这两种情况下节省您时间的Python库。即使您只将其中一个库纳入您的工具库&#xff0c;您仍然可以在下次项目工作时节省宝贵的时…

揭示OLED透明屏数据:探索未来显示技术的潜力

OLED透明屏作为一项颇具吸引力的显示技术&#xff0c;以其独特的特点和卓越的画质在市场上引起了广泛关注。 在这篇文章中&#xff0c;尼伽将和大家一起深入探索OLED透明屏的数据&#xff0c;通过具体的市场趋势分析、技术指标解析、应用领域探讨和未来前景展望&#xff0c;为…

【C++基础】实现日期类

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a; C实现日期类。 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&#xff1a;2023.9.7 对于类的成员函数的声明和定义&#xff0c;我们在类和对象上讲到过&#xff0c;需要进行…

mac 查看端口占用

sudo lsof -i tcp:port # 示例 sudo lsof -i tcp:8080 杀死进程 sudo kill -9 PID # 示例 sudo kill -9 8080

“搞事情”?OpenAl将于11月召开其首届开发者大会

摘要&#xff1a;OpenAI也要召开它的第一届开发者大会了。这次活动&#xff0c;或许标志着OpenAI向其下一阶段的商业开发迈出了关键一步。 昨天&#xff0c;OpenAI宣布将于11月6日举办其首次开发者大会。在这场名为“OpenAI DevDay”的活动中&#xff0c;OpenAI的技术人员将进行…

欧科云链与HashKey Exchange达成合作,助力香港虚拟资产合规化

继8月10日 欧科云链 与 华为云 达成合作之后&#xff0c; 今天&#xff0c;欧科云链 又与 Hashkey Exchange 共同宣布正式达成合作&#xff01; 这次与Hashkey达成合作&#xff0c;双方又将在Web3行业中谱写怎样的故事&#xff1f; 9月6日&#xff0c;欧科云链控股有限公司&…

2023 年高教社杯全国大学生数学建模竞赛题目 C 题 蔬菜类商品的自动定价与补货决策

C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c;商超通常会根据各商品的历史销售和需求情况每天进…

生物通路数据库收录1600+整合的经典通路

生物通路数据库为科学家提供了关于生物通路的大量信息和资源&#xff0c;特别是在数据整合、信息检索、数据可视化分析、数据交互、生物学研究等方面&#xff0c;积极推动了生物学研究和科学的发展。 世界各地正在创建各种类型的通路数据库&#xff0c;每个数据库都反映了其创…

快递批量查询高手必备的实用工具

在网购日益普及的今天&#xff0c;我们经常需要查询快递的物流信息。但是&#xff0c;传统的查询方式一个一个地输入快递单号&#xff0c;不仅费时费力&#xff0c;还容易出错。有没有一种方法可以批量查询多个快递单号呢&#xff1f;答案是肯定的&#xff0c;今天我们就来介绍…

2140. 解决智力问题;1401. 圆和矩形是否有重叠;901. 股票价格跨度

2140. 解决智力问题 核心思想:动态规划。dp[i]表示解决i-n-1的问题所能获得的最高分数&#xff0c;注意需要倒叙遍历&#xff0c;因为i的状态由后面的状态转移过来的。 1401. 圆和矩形是否有重叠 核心思想&#xff1a;分情况讨论&#xff0c;圆心情况。借用别人一张图说明。 …

JWT-Token升级方案

1. 介绍 JWT是JSON Web Token的缩写&#xff0c;即JSON Web令牌&#xff0c;是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息&#xff0c;以便于从资源服务器获取资…

ATFX汇市:美联储褐皮书透露就业市场新动向,美元指数中期多头趋势延续

ATFX汇市&#xff1a;今日2:00&#xff0c;美联储发布褐皮书&#xff0c;关于就业市场&#xff0c;其中提到&#xff1a;全国就业增长乏力&#xff0c;大多数地区的劳动力成本压力增长加剧&#xff0c;企业预计工资增长将在短期内普遍放缓。从7月、8月的非农就业报告当中&#…

数据结构和算法(2):向量

抽象数据类型 数组到向量 C/C 中&#xff0c;数组A[]中的元素与[0,n)内的编号一一对应&#xff0c;A[0],A[1],...,A[n-1]&#xff1b;反之&#xff0c;每个元素均由&#xff08;非负&#xff09;编号唯一指代&#xff0c;并可直接访问A[i] 的物理地址 Ai s&#xff0c;s 为单…

vue-elementPlus自动按需导入和主题定制

elementPlus自动按需导入 装包 -> 配置 1. 装包&#xff08;主包和两个插件包&#xff09; $ npm install element-plus --save npm install -D unplugin-vue-components unplugin-auto-import 2. 配置 在vite.config.js文件中配置&#xff0c;配置完重启&#xff08;n…

SM5202 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器

简介&#xff1a; SM5202 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器&#xff0c;并带有锂电池正负极反接保护功能&#xff0c;可以保护芯片和用户安全。由于采用了内部 PMOSFET 架构&#xff0c;加上防倒充电路&#xff0c;所以不需要外部检测电阻和隔离二极管…

Java之包装类的算法小题的练习

算法小题 练习一&#xff1a; 需求&#xff1a; 键盘录入一些1~10日之间的整数&#xff0c;并添加到集合中。直到集合中所有数据和超过200为止。 代码示例&#xff1a; public class Test1 {public static void main(String[] args) {/*键盘录入一些1~10日之间的整数&…

产业大数据应用:洞察区域产业实况,把握区域经济脉搏

​ 随着新一代信息技术的崛起&#xff0c;我们进入了大数据时代。在这个时代&#xff0c;数据作为基本生产要素不仅改变着我们的日常生活&#xff0c;更是在区域产业经济发展中扮演着重要角色&#xff0c;它赋予了政府、企业和投资者敏锐的洞察力。 一、摸清区域经济现状 基于…

智慧公厕如何实现系统管理、运行数据、业务流程的高度耦合

随着城市发展和人口增长&#xff0c;公共厕所成为城市更新与发展的重要环节。然而&#xff0c;传统的公共厕所管理方式面临诸多问题&#xff0c;如运营成本高、环境污染、人员管理等。为了解决这些问题&#xff0c;智慧公厕应运而生。智慧公厕是指利用现代科技手段&#xff0c;…