mybatis(mysql)实现limit分页参数计算
前言
我丢丢丢丢丢丢
真的是学着忘着,做项目的同时又算是预习了一下,顺便记录一个知识点。
平常学习还有联系的时候都是使用Oracle,mysql已经很少使用了。
这才自己做项目的时候,部署到linux就只能使用MySQL了,javaWeb项目使用mybaits框架
叙述
其实我已经忘记了mysql的分页是怎么实现的,只记得一个limit,然后就去百度了一下。
学习还是不能只学一点,疯狂报错中。。。
sql语句是这样的:
SELECT from (SELECT from content where stateContent=1 andstateContent =1 LIMIT 0,2 ) c LEFT JOIN relationships r on c.contentId=r.cId LEFT JOIN label l on r.lId=l.labelId
算是一个比较简单的多对多吧。
计算了一下分页的公式:limit (pageIndex-1)*pageSize,pageSize
然后在mapper.xml文件里的时候:
<if test="pageIndex!=0">
limit (#{pageIndex}-1)*2,2
</if>
我的页面大小是在xml固定的,只传入当前页面的值。
这个时候就遇到了一个问题,mybatis不会自动计算,然后我发现sql也不会自动计算,好吧,失策
随后了解到<bind/>标签
<!-- 使用bind标签帮助计算limit需要的值,感谢select标签大仁大义才能放进来bind标签 -->
<bind name="key_offset" value="(pageIndex-1)*2"></bind>
<if test="pageIndex!=0">
limit #{key_offset},2
</if>
好了,今天的学习到此为止,游戏去。
学习才是缓解焦虑的最好方法。
-end 学习笔记
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。