First look at how SQL writes
Select * from ( Select A.*, ROWNUM rn from (lowest query statement ) A where< = #{endcol} ) where > #{startcol}
Note: < in MyBatis is less than sign > is greater than sign
Of course we also need select COUNT (*) the lowest query statement to get the total number of result sets. And then convert the Endcol and Startcol.
The conversion code is as follows:
//int totalrecord= total number of bars; //Calculate Paging intintps=Integer.parseint (pageSize); intintpn=Integer.parseint (PageNo); intIntstartcol= intps* (intPN-1) +1; intIntendcol= intps*intpn-1+1; String Startcol=string.valueof (Intstartcol); String Endcol=string.valueof (Intendcol); inttotalpageno=totalrecord%intps>0?totalrecord/intps+1:totalrecord/IntPS; //include the start and end entry numbers of the pagination in the parameter dictionaryParamsmap.put ("Startcol", Startcol); Paramsmap.put ("Endcol", Endcol);
Implementation of Oracle-mybatis dynamic SQL query paging