mybatis进行分页,使用limit

这里记录两个思路:

首先是写一个不能执行的代码。

    <select id="query" parameterType="map" resultType="Desk">
        select * from desk
        <where>
            <include refid="query_desk_where"/>
        </where>
        limit #{pc-1}*#{ps},#{pc}*#{ps}
    </select> 

limit字句中是不允许运算的,而#{}表示的是一个占位符,所以报错sql语句放到编辑器里面也不能执行

 

解决方案1:

  将#{}变成${},也就是相当于limit后面的值是定值,sql语句是拼接而成的而不是占位符赋值运算:

    <select id="query" parameterType="map" resultType="Desk">
        select * from desk
        <where>
            <include refid="query_desk_where"/>
        </where>
        limit ${(pc-1)*ps},${pc*ps}
    </select> 

    或者使用先在service中处理得到start和end然后再传入

posted @   guodaxia  阅读(32554)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示