springboot之mybatis分页查询
首先写一个基础的分类bean插件,由下面两个类组成
package com.my.utils;import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;import java.util.Date;/*** * @author luozejun**/
public class BaseBean {private Integer page ;private Integer rows ;private String sort;private String order;/*** 分页导航*/private Pager pager = new Pager();public Pager getPager() {if(page!=null && rows!=null){pager.setPageId(page);pager.setPageSize(rows);String orderField="";if(StringUtils.isNotBlank(sort)){orderField = sort;}if(StringUtils.isNotBlank(orderField) && StringUtils.isNotBlank(order)){orderField +=" "+ order;}pager.setOrderField(orderField);return pager;}else{return pager;}}public void setPager(Pager pager) {this.pager = pager;}public Integer getPage() {return page;}public void setPage(Integer page) {this.page = page;}public Integer getRows() {return rows;}public void setRows(Integer rows) {this.rows = rows;}public String getSort() {return sort;}public void setSort(String sort) {this.sort = sort;}public String getOrder() {return order;}public void setOrder(String order) {this.order = order;}}
package com.my.utils;/*** <p>* Title: WASU Platform* </p>* <p>* Description: 分页技术的实现。* </p>* <p>* Copyright: 2006-2008* </p>* <p>* Company:* </p>** @author* @version 2.0*/
// oracle,sqlserver,mysql分页技术
public class Pager {//pageprivate Integer pageId ; // 当前页//rowprivate Integer pageSize ; // 页大小private Integer pageOffset = 0;// 当前页起始记录private String orderField;private Integer pageEnd;private boolean orderDirection = true;public Integer getPageEnd() {return pageEnd;}public void setPageEnd(Integer pageEnd) {this.pageEnd = pageEnd;}protected void doPage() {if(pageSize ==null || pageId==null){ return ;}this.pageOffset = (this.pageId - 1) * this.pageSize;}public String getOrderCondition() {String condition = "";if (this.orderField != null && this.orderField.length() != 0) {condition = " order by " + orderField+ (orderDirection ? " " : " desc ");}return condition;}public String getMysqlQueryCondition() {if(pageSize ==null || pageId==null) {return null;}if(pageOffset == null){doPage();}this.pageEnd = pageOffset + pageSize;String condition = "";condition = " limit " + pageOffset + "," + pageSize;return condition;}public String getMysqlQueryStudip() {String condition = " limit " + pageOffset + "," + pageSize;return condition;}public void setOrderDirection(boolean orderDirection) {this.orderDirection = orderDirection;}public boolean isOrderDirection() {return orderDirection;}public void setOrderField(String orderField) {this.orderField = orderField;}public String getOrderField() {return orderField;}public void setPageId(Integer pageId) {this.pageId = pageId;if(pageSize!=null){doPage();this.pageEnd = pageOffset + pageSize;}}public Integer getPageId() {return pageId;}public void setPageOffset(Integer pageOffset) {this.pageOffset = pageOffset;}public Integer getPageOffset() {return pageOffset;}public void setPageSize(Integer pageSize) {this.pageSize = pageSize;if(pageId!=null){doPage();this.pageEnd = pageOffset + pageSize;}}public Integer getPageSize() {return pageSize;}}
再写一个应答类
package com.my.utils;public class ResultEndBean {private Object data;private Integer codeId;private String msg;public ResultEndBean(Object data) {this();setData(data);}public ResultEndBean() {codeId = 0;msg = "success";}public ResultEndBean(boolean flag) {codeId = flag?0:1;msg = flag?"success":"error";}public ResultEndBean(boolean flag, String msg) {codeId = flag?0:1;this.msg = msg;}public ResultEndBean(Integer codeId, String msg, Object data) {this.codeId = codeId;this.msg = msg;this.data = data;}public ResultEndBean(Integer codeId, String msg) {this.codeId = codeId;this.msg = msg;}public ResultEndBean(Integer codeId) {this.codeId = codeId;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}public Integer getCodeId() {return codeId;}public void setCodeId(Integer codeId) {this.codeId = codeId;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}
处理方式如下:
@RestController
public class UsercopyControl {@AutowiredUsercopyMapper usercopyMapper;@GetMapping("/page")ResultEndBean GetPage(BaseBean baseBean){Map<String,Object> map = new HashMap<>(4);List<Usercopy> usercopies = usercopyMapper.GetTotal(baseBean);map.put("data", usercopies);return new ResultEndBean(map);}
}
XML编写如下:
<?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 namespace="com.my.mapper.UsercopyMapper"><select id="GetTotal" parameterType="com.my.utils.BaseBean" resultType = "Usercopy" >SELECT id,myname,age FROM user_copy where 1 = 1<if test="pager.mysqlQueryCondition != null and pager.mysqlQueryCondition != ''" >${pager.mysqlQueryCondition}</if></select>
</mapper>
最后,使用postman测试
********************************遇到一个大坑,name字段一直返回为null,后来发现居然加了一个string 的引用
import com.sun.org.apache.xpath.internal.operations.String;
去掉这个,即OK了
springboot之mybatis分页查询相关推荐
- SpringBoot使用GeoHash分页查询附近的人:RedisTemplate+GeoHash+Lua
SpringBoot使用GeoHash分页查询附近的人:RedisTemplate+GeoHash+Lua 架构设计 开发环境 SpringBoot Redis(version>=3.2) Re ...
- MYBATIS分页查询代码优化
项目场景: mybatis分页查询的时候,需要联动其他系统,把每条数据的用户信息查询出来,用户量很多的时候,出现一次查询需要十几秒的情况. 问题描述 查询出的数据,其实除了当前页的数据,其他的实际上并 ...
- Mybatis 分页查询(实战版)
Mybatis 分页查询 提示:本次基于springboot2.4.1,SQL limit实现的 文章目录 Mybatis 分页查询 前言 例如:使用sqL LIMIT 实现条件查询 一.建立实体类( ...
- 【问题解决】MyBatis分页查询SQL Server2008时出现'@P0' 附近有语法错误
MyBatis分页查询SQL Server2008时出现'@P0' 附近有语法错误" Error querying database. Cause: com.microsoft.sqlser ...
- Spring Boot实现MyBatis分页查询
综合概述 想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍 ...
- springboot整合mybatis分页插件
1.springboot版本为2.0.1,数据库为mysql,引入pagehelper的pom依赖 <!--mybatis分页插件--> <dependency><gro ...
- mybatis 分页查询_MyBatis之分页查询:MyBatis PageHelper
MyBatis,作为目前流行的ORM框架,大大方便了日常开发.而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐.而MyBatis PageHelper的出现,则解决了这一痛点.这里 ...
- java mybatis分页查询语句_mybatis分页查询的实现(一)
一.总结了mybatis中五种不同实现分页查询的方法 UserMapper.java接口文件 public interface UserMapper { //分页查询 public List sele ...
- 【mybatis】在mybatis分页查询时,主表对关联表 一对多 分页查询怎么实现
现在有这样一个需求: 1.积分商品分页查询 2.一个积分商品会有多张商品图片在商品图片表 1:n的关系 这样在积分商品分页查询的时候,想要顺便把每个积分商品对应的商品图片信息也带出来 实现如下: 1 ...
最新文章
- leetcode--最长连续递增序列--python
- pthread_cond_wait()加一个while为什么的解释
- 混沌工程详细介绍——Netflix持续交付实践探寻
- poj 1018 Communication System
- Oracle中输出一个变量
- android 继承listview,Android listView 继承ListActivity的用法
- 设置XMLHttpRequest“ withCredentials”属性问题,axios请求不成功
- Android 系统(95)---Android build.prop参数详解
- java中的缓存详解,一篇就够了
- 带SN切换流程_贴片电阻生产工艺流程简介
- Nebula3 SDK (Apr 2009)更新内容
- c51编译器+linux,C51 开源编译器SDCC学习笔记-安装
- B站视频直接下载成mp4格式
- win7系统mscomctl.ocx不能注册
- 开源项目之饭否 for Android
- 上海某马培训软件测试工程师第01期就业班课程
- open write read 函数
- 支付宝接口调试完成后,接入本地项目中
- Javascript判断是否iphone全面屏手机
- Jquery一个简单的注册验证
热门文章
- python list append 相关知识点
- 快速上手,定制第一个WES8镜像
- 如何提取网页中所有链接(C++) 转载
- Vue CLI 3.0 正式发布,Vue.js 开发标准化工具
- zb_system login.php,zblog后台登录地址怎么修改?
- vba 怎么取得一个book中最右边的sheet名_商业观察|探底新零售中的坪效革命
- 解决github网站打开慢的问题
- vue项目中使用axios发送请求
- python程序memory error_Python memory error的问题
- python3.7降级3.6_电脑已有Python 3.7 怎么降到Python3.6