大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Mybatis分頁方式

Mybatis分頁方式

更新時間:2021-06-21 12:29:04 來源:動力節點 瀏覽1000次

1.數組分頁

原理:進行數據庫查詢操作時,獲取到數據庫中滿足條件的記錄,保存在對應的List集合中,通過List.subList方法,截取到滿足條件的所有記錄。

實現:

首先是dao層,創建UserMapper接口,用于對數據庫的操作。在接口中定義查詢數據的方法,如下:

List<User> queryUsers();

創建UserMapper.xml,編寫查詢的SQL語句,如下:

<select id="queryUsers" resultMap="BaseResultMap">
	SELECT id, nickname, name, pwd, e_mail, is_enable, last_modify_date
	FROM user
</select>

創建UserService接口,定義實現分頁的方法

List<User> queryUsers(Integer page,Integer limit);

接下來編寫UserServiceImpl實現類,編寫具體的分頁實現操作:

public List<User> queryUsers(Integer page, Integer limit) {
	//從第幾條數據開始
	int fromIndex = (page-1)*limit;
	//到第幾條數據結束
	int toIndex = page*limit;
	//使用subList方法截取滿足條件的數據
	return userMapper.queryUsers().subList(fromIndex, toIndex);
}

最后在controller編寫測試代碼,這里我前端使用的事LayUI框架,所以對返回數據進行了封裝,如下所示:


@GetMapping(value = "queryUsers",produces = "application/json; charset=UTF-8")
@ResponseBody
public ApiResponse queryUsers(Integer page, Integer limit) {
 
	List<User> queryUsers = userService.queryUsers(page, limit);
	int countAll = userService.countAll();
	if (queryUsers.size() > 0) {
		return ApiResponse.ofSuccess(queryUsers, countAll);
	}
	return ApiResponse.ofMessage(500, "無數據");
}

測試結果:

缺點:當查詢數據量大的時候,每次查詢對數據庫和程序的性能都會產生極大的影響,適合操作數據量小的情況下使用

2.limit分頁

首先還是在UserMapper添加分頁查詢的方法:

List<User> queryByLimit(@Param("offset") Integer offset, @Param("limit") Integer limit);

在UserMapper.xml添加具體的操作方法:

<select id="queryByLimit" resultMap="BaseResultMap">
	SELECT id, nickname, name, pwd, e_mail, is_enable, last_modify_date
	FROM user limit #{offset},#{limit}
</select>

接著編寫service層,編寫UserService接口以及實現類UserServiceImpl對分頁方法的操作:

List<User> selectByLimit(Integer page, Integer limit);
public List<User> selectByLimit(Integer page, Integer limit) {
	int offset = (page - 1) * limit;
	return userMapper.queryByLimit(offset, limit);
}

最后controller編寫測試方法:

@GetMapping(value = "queryByLimit",produces = "application/json; charset=UTF-8")
@ResponseBody
public ApiResponse queryByLimit(Integer page, Integer limit) {
 
	List<User> queryUsers = userService.queryByLimit(page, limit);
	int countAll = userService.countAll();
	if (queryByLimit.size() > 0) {
		return ApiResponse.ofSuccess(queryByLimit, countAll);
	}
	return ApiResponse.ofMessage(500, "無數據");
}

測試結果:

從輸出結果可以看出與數據分頁的查詢結果是一直的,所以limit分頁是沒問題的。

缺點:雖然這里實現了按需查找,每次檢索得到指定的數據,但是每次在分頁時都要去編寫limit語句,很冗余。而且不方便統一管理,維護性比較差。

以上就是動力節點小編介紹的"Mybatis分頁方式",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美高清视频www夜色资源网 | 久青草视频97国内免费影视 | 四虎永久在线观看视频精品 | 国产91精品一区二区视色 | 日韩欧美国产一区二区三区四区 | 日本精品久久久久中文字幕 | 久久久久久久九九九九 | 毛片爱爱 | 色婷婷久久综合中文久久一本` | 92在线视频 | 激情国产白嫩美女在线观看 | 久久99精品久久久久久首页 | 午夜影网| 国产日韩精品欧美在线ccc | 色天天综合久久久久综合片 | 欧美一级片在线免费观看 | 久久一本一区二区三区 | 九九九九热精品免费视频 | 欧美成人xx大片 | 特级毛片全部免费播放a一级 | 国产精品v欧美精品∨日韩 国产精品v一区二区三区 | 欧美色交| 中文字幕亚洲欧美日韩高清 | 国产美女a做受大片在线观看 | 亚洲欧美激情综合第一区 | 一级黄色免费网站 | 日韩三区| chinese国产人妖视频网站 | 成人私拍福利视频在线 | 天天综合天天看夜夜添狠狠玩 | 精品动漫中文字幕一区二区三区 | 一级毛片真人免费观看 | 久久96国产精品 | 亚欧精品一区二区三区四区 | 91精品久久久久久久久久小网站 | 国产亚洲精彩视频 | 在线a人片免费观看国产 | 97精品高清一区二区三区 | 狠狠的干狠狠的操 | 99热这里只有精品首页 | 国产在线91精品入口首页 |