如何用Mybatis逆向工程实现分页查询(更改生成的Example)
如何用Mybatis逆向工程实现分页查询
一个很简单的方法,如果要mysql实现分页查询的话,执行下述语句即可
select * from table
limit (offset)5,(limit)10;
其中,第一个参数offset为游标起点,第二个参数limit为一次所取的数据量.这个语句在数据库中极其简单,但由于mybatis的逆向工程将绝大多数的sql语句包装成方法,那么如果要实现分页查询的话,本人看了下mapper.xml的代码,可以如下实现:
1、打开生成的example.class,在里面的变量中增加offset,limit两个变量,并为其添加set,get方法
protected Integer leftLimit;
protected Integer limitSize;
public Integer getLeftLimit() {
return leftLimit;
}
public void setLeftLimit(Integer leftLimit) {
this.leftLimit = leftLimit;
}
public Integer getLimitSize() {
return limitSize;
}
public void setLimitSize(Integer limitSize) {
this.limitSize = limitSize;
}
- 打开mapper.xml文件里面对应位置设置配置.例如在selectByExample方法中配置,添加条件
<if test="leftLimit != null && limitSize!= null"> limit ${leftLimit},${limitSize} </if>
改变的前提是要能看懂逆向工程中Example的含义,很好用很简单
-
完整代码如下
<select id="selectByExample" parameterType="club.bagedate.o2o.entity.ShopExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue May 14 10:48:08 CST 2019.
-->
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from shop
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
<if test="leftLimit != null && limitSize!= null">
limit ${leftLimit},${limitSize}
</if>
</select>
-
通过java代码实现具体业务逻辑,实现分页就OK了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY