這里記錄兩個思路:
首先是寫一個不能執行的代碼。
<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然后再傳入