久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MyBatis limit分頁(yè)設(shè)置的實(shí)現(xiàn)

瀏覽:68日期:2023-10-19 14:30:10
錯(cuò)誤的寫法:

<select parameterType='MyApplicationRequest' resultMap='myApplicationMap'> SELECT a.*, FROM tb_user a WHERE 1=1 <if test='ids != null and ids.size()!=0'> AND a.id IN <foreach collection='ids' item='id' index='index' open='(' close=')' separator=','> #{id} </foreach> </if> <if test='statusList != null and statusList.size()!=0'> AND a.status IN <foreach collection='statusList' item='status' index='index' open='(' close=')' separator=','> #{status} </foreach> </if> ORDER BY a.create_time desc LIMIT (#{pageNo}-1)*#{pageSize},#{pageSize}; // 錯(cuò)誤</select>

在MyBatis中LIMIT之后的語(yǔ)句不允許的變量不允許進(jìn)行算數(shù)運(yùn)算,會(huì)報(bào)錯(cuò)。

正確的寫法一:

<select parameterType='MyApplicationRequest' resultMap='myApplicationMap'> SELECT a.*, FROM tb_user a WHERE 1=1 <if test='ids != null and ids.size()!=0'> AND a.id IN <foreach collection='ids' item='id' index='index' open='(' close=')' separator=','> #{id} </foreach> </if> <if test='statusList != null and statusList.size()!=0'> AND a.status IN <foreach collection='statusList' item='status' index='index' open='(' close=')' separator=','> #{status} </foreach> </if> ORDER BY a.create_time desc LIMIT ${(pageNo-1)*pageSize},${pageSize}; (正確)</select> 正確的寫法二:(推薦)

<select parameterType='MyApplicationRequest' resultMap='myApplicationMap'> SELECT a.*, FROM tb_user a WHERE 1=1 <if test='ids != null and ids.size()!=0'> AND a.id IN <foreach collection='ids' item='id' index='index' open='(' close=')' separator=','> #{id} </foreach> </if> <if test='statusList != null and statusList.size()!=0'> AND a.status IN <foreach collection='statusList' item='status' index='index' open='(' close=')' separator=','> #{status} </foreach> </if> ORDER BY a.create_time desc LIMIT #{offSet},#{limit}; (推薦,代碼層可控)</select>

分析:方法二的寫法,需要再請(qǐng)求參數(shù)中額外設(shè)置兩個(gè)get函數(shù),如下:

@Datapublic class QueryParameterVO { private List<String> ids; private List<Integer> statusList; // 前端傳入的頁(yè)碼 private int pageNo; // 從1開始 // 每頁(yè)的條數(shù) private int pageSize; // 數(shù)據(jù)庫(kù)的偏移 private int offSet; // 數(shù)據(jù)庫(kù)的大小限制 private int limit; // 這里重寫offSet和limit的get方法 public int getOffSet() { return (pageNo-1)*pageSize; } public int getLimit() { return pageSize; }}

到此這篇關(guān)于MyBatis limit分頁(yè)設(shè)置的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis limit分頁(yè)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

相關(guān)文章:
主站蜘蛛池模板: 南宫市| 外汇| 台东市| 营山县| 宝应县| 枝江市| 招远市| 五峰| 翼城县| 林甸县| 曲阜市| 龙里县| 女性| 通辽市| 宿州市| 历史| 依兰县| 建德市| 泰宁县| 贺州市| 肇州县| 邓州市| 广安市| 古交市| 和硕县| 万安县| 望谟县| 高淳县| 星子县| 筠连县| 买车| 若尔盖县| 北海市| 岑巩县| 通州市| 迭部县| 社会| 敖汉旗| 西吉县| 台中县| 满城县|