mybatis分页的一种解决方案
mybatis自定义分页解决方案
1、PageSqlProvider<T> —— 提供默认的分页列表查询
package com.xinyartech.erp.core.base;import com.xinyartech.erp.core.dto.page.PageDTO;/** * Provider默认抽象实现** @author Lynch */ public abstract class PageSqlProvider<T> {/*** 分页sql语句,注意:最外层显示字段不能包含子查询* * @return* @author Lynch*/protected abstract String preSql(PageDTO<T> pageDto);/*** 分页列表查询* * @param pageDto* @return* @author Lynch*/public String findAll(PageDTO<T> pageDto){return preSql(pageDto);}/*** 统计分页总条数* * @return* @author Lynch*/public String countAll(PageDTO<T> pageDto){String sql = preSql(pageDto);String countSql = "select count(1) " + sql.substring(sql.indexOf("from"), sql.length());return countSql;} }
2、StudentMapper.java —— 继承PageSqlProvider<T>,重新preSql(),自动实现分页查询和总条数查询
package com.xinyartech.erp.system.mapper;import java.util.List;import org.apache.ibatis.annotations.SelectProvider;import com.xinyartech.erp.core.base.PageSqlProvider; import com.xinyartech.erp.core.dto.page.PageDTO; import com.xinyartech.erp.system.dto.RoleResourceDTO; import com.xinyartech.erp.system.model.SysButton;public interface StudentMapper {@SelectProvider(type = StudentProvider.class, method = "findAll")public List<SysButton> querySysButtonList(PageDTO<RoleResourceDTO> pageDto);@SelectProvider(type = StudentProvider.class, method = "countAll")public Long count(PageDTO<RoleResourceDTO> pageDto);class StudentProvider extends PageSqlProvider<RoleResourceDTO> {@Overrideprotected String preSql(PageDTO<RoleResourceDTO> pageDto) {String sql = "select * from sys_button where 1=1";if(pageDto.getParameters().getRoleId() != null) {sql +=" and id=" + pageDto.getParameters().getRoleId();}return sql;}} }
转载于:https://www.cnblogs.com/linjiqin/p/11429538.html
mybatis分页的一种解决方案相关推荐
- ElasticSearch分页查询四种解决方案与原理
当你拼命想完成一件事的时候,你就不再是别人的对手,或者说得更确切一些,别人就不再是你的对手了,不管是谁,只要下了这个决心,他就会立刻觉得增添了无穷的力量,而他的视野也随之开阔了.--<基督山伯爵 ...
- 分享一个完整的Mybatis分页解决方案
分享一个完整的Mybatis分页解决方案 参考文章: (1)分享一个完整的Mybatis分页解决方案 (2)https://www.cnblogs.com/gev-1016/p/6606114.htm ...
- 使用Mybatis时, 在*Mapper.xml中出现大于号小于号的问题及两种解决方案
当我们在*Mapper.xml文件中编写SQL语句的过程中, 我们的SQL语句中可能会出现使用 >, <, >=, <= 的情况. 如, 查询在当前时间之前创建的用户, 对应的 ...
- Mybatis实现分页的三种方式
文章目录 1.Limit实现分页 2.RowBounds分页(不建议使用) 3.MyBatis分页插件PageHelper(了解即可) 1.Limit实现分页 sql语句 SELECT * from ...
- MyBatis分页插件PageHelper使用练习
转载自:http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown 1.环境准备: 分页插件p ...
- mybatis 分页需要的jar包下载_牛逼哄哄的PageHelper分页插件到底牛在哪里?
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 urlify.cn/z2IFn2 推荐:https://www.xttblog. ...
- python编程8g的内存够么_详解解决Python memory error的问题(四种解决方案)
昨天在用用Pycharm读取一个200+M的CSV的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存i7处理器,一度怀疑自己装了假的内存条....下面说一下几个 ...
- MyBatis学习总结(17)——Mybatis分页插件PageHelper
2019独角兽企业重金招聘Python工程师标准>>> 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊 ...
- Mybatis分页实现
一.引言 Mybatis提供了强大的分页拦截实现,可以完美的实现分功能 二.普通的分页实现 普通分页实现即使直接在mapper文件中写分页查询语句 Messsage.xml <?xml vers ...
最新文章
- 解决ssh登录linux速度慢的问题(以centos7为例)
- nyoj1180Maze
- mysql聚簇索引存储结构_MySQL聚簇索引的实际应用于结构描述
- Revit API创建标高,单位转换
- mysql的命令行安装,忘记密码,密码重置问题
- 3.6 SM30维护表数据
- 阅读类app界面设计UI可临摹素材模板
- lucene全文检索的概念
- 计算机技能测试题12答案,计算机基本技能考试选择题及答_计算机一级考试练习题及答案...
- 新手学计算机剪辑,视频剪辑软件入门推荐!最适合初学者的四大软件!手机电脑都可以...
- Talk预告 | 中国科学技术大学和微软亚洲研究院联合培养博士生冷燚冲:语音识别的快速纠错模型FastCorrect
- 王家林人工智能AI 第七节课:四种性能优化Matrix编写AI框架实战(Gradient Descent的陷阱、及几种常见的性能优化方式实战)老师微信13928463918
- oracle数据库02195,数据库表空间操作 - osc_w33tzsln的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【ES源码分析】强制合并分段(_forcemerge API)源码分析
- InetAddress.getByName背后发生了什么
- [单片机框架] [kv_sys] 实现一个简易KV键值系统(升级版)
- Oracle修改用户名密码
- 申宝投资-A股震荡下行
- IE 兼容性问题记录
- ELK搭建(五):linux系统日志监控平台搭建