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然后再傳入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM