MyBatis-Plus實(shí)現(xiàn)對(duì)查詢結(jié)果進(jìn)行分頁(yè)的基本步驟
MyBatis-Plus 是一個(gè) MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。MyBatis-Plus 支持多種數(shù)據(jù)庫(kù)的分頁(yè)查詢,其分頁(yè)功能是通過(guò) Page 類實(shí)現(xiàn)的。
以下是使用 MyBatis-Plus 實(shí)現(xiàn)分頁(yè)查詢的基本步驟:
添加依賴:首先確保你的項(xiàng)目中已經(jīng)添加了 MyBatis-Plus 的依賴。
配置 Mapper 接口:創(chuàng)建一個(gè) Mapper 接口,該接口繼承自
BaseMapper<T>,其中T是你的實(shí)體類。創(chuàng)建 Service:在 Service 層中,你可以注入 Mapper 接口,并調(diào)用其分頁(yè)查詢的方法。
使用 Page 類:創(chuàng)建一個(gè)
Page對(duì)象,設(shè)置當(dāng)前頁(yè)碼和每頁(yè)顯示的記錄數(shù)。調(diào)用分頁(yè)查詢:在 Mapper 接口中定義一個(gè)分頁(yè)查詢的方法,使用
@Select注解或者 XML 映射文件來(lái)指定查詢語(yǔ)句。然后在 Service 層調(diào)用這個(gè)方法,傳入Page對(duì)象。處理結(jié)果:分頁(yè)查詢的結(jié)果會(huì)返回一個(gè)
PageInfo<T>對(duì)象,其中包含了當(dāng)前頁(yè)的數(shù)據(jù)和分頁(yè)信息。
好的,用一個(gè)案例來(lái)具體看一下,如何使用 MyBatis-Plus 進(jìn)行分頁(yè)查詢。假設(shè)我們有一個(gè)需求是,在用戶管理系統(tǒng),需要對(duì)用戶列表進(jìn)行分頁(yè)顯示。
- 實(shí)體類(User.java):
public class User {
private Long id;
private String name;
private Integer age;
private String email;
// 省略其他字段和getter/setter方法
}
- Mapper 接口(UserMapper.java):
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
public interface UserMapper extends BaseMapper<User> {
// 這里可以添加自定義的查詢方法,例如按狀態(tài)查詢
Page<User> selectByState(Page<User> page, @Param("state") Integer state);
}
- Mapper XML 文件(UserMapper.xml):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<!-- 按狀態(tài)查詢用戶的分頁(yè)結(jié)果 -->
<select id="selectByState" resultType="com.example.entity.User">
SELECT * FROM user WHERE state = #{state}
</select>
</mapper>
- Service 接口(IUserService.java):
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.entity.User;
public interface IUserService extends IService<User> {
IPage<User> getUserListByState(Integer state, int current, int size);
}
- Service 實(shí)現(xiàn)(UserServiceImpl.java):
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.mapper.UserMapper;
import com.example.entity.User;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Override
public IPage<User> getUserListByState(Integer state, int current, int size) {
IPage<User> page = this.page(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(current, size), null);
if (state != null) {
return this.baseMapper.selectByState(page, state);
}
return page;
}
}
- Controller(UserController.java):
import com.example.service.IUserService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
private IUserService userService;
@GetMapping("/users")
public IPage<User> getUsers(@RequestParam(defaultValue = "0") Integer state,
@RequestParam(defaultValue = "1") int current,
@RequestParam(defaultValue = "10") int size) {
return userService.getUserListByState(state, current, size);
}
}
- 啟動(dòng)類(Application.java):
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- application.properties:
# 配置數(shù)據(jù)庫(kù)連接信息 spring.datasource.url=jdbc:mysql://localhost:3306/userdb?useSSL=false&serverTimezone=UTC spring.datasource.username=weige spring.datasource.password=wg123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 配置 MyBatis-Plus mybatis-plus.mapper-locations=classpath:/mapper/*.xml mybatis-plus.type-aliases-package=com.vin.entity
以上就是MyBatis-Plus實(shí)現(xiàn)對(duì)查詢結(jié)果進(jìn)行分頁(yè)的基本步驟的詳細(xì)內(nèi)容,更多關(guān)于MyBatis-Plus查詢結(jié)果分頁(yè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- MybatisPlus多表查詢及分頁(yè)查詢完整代碼
- MyBatis分頁(yè)查詢返回list的時(shí)候出現(xiàn)null的問(wèn)題
- mybatis-plus分頁(yè)查詢的實(shí)現(xiàn)實(shí)例
- MybatisPlus將自定義的sql列表查詢返回改為分頁(yè)查詢
- MyBatis分頁(yè)查詢與特殊字符處理方式
- Mybatis實(shí)現(xiàn)分頁(yè)查詢的詳細(xì)流程
- mybatis-plus分頁(yè)查詢?nèi)N方法小結(jié)
- Java中Mybatis分頁(yè)查詢的四種傳參方式
- Mybatis分頁(yè)查詢主從表的實(shí)現(xiàn)示例
相關(guān)文章
淺析JDBC與數(shù)據(jù)庫(kù)如何進(jìn)行數(shù)據(jù)交互及類型轉(zhuǎn)換
本文主要介紹了JDBC在Java應(yīng)用程序與數(shù)據(jù)庫(kù)交互中的關(guān)鍵作用,詳細(xì)解釋了數(shù)據(jù)交互流程和數(shù)據(jù)類型轉(zhuǎn)換機(jī)制,并提供了高級(jí)數(shù)據(jù)交互機(jī)制、優(yōu)化建議及實(shí)際驅(qū)動(dòng)示例,希望對(duì)大家有所幫助2026-04-04
jstl之map,list訪問(wèn)遍歷以及el表達(dá)式map取值的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇jstl之map,list訪問(wèn)遍歷以及el表達(dá)式map取值的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
使用java判斷101-200之間有多少個(gè)素?cái)?shù)并輸出
在編程中,處理數(shù)學(xué)問(wèn)題是一個(gè)常見(jiàn)的任務(wù),本文將介紹如何使用Java語(yǔ)言來(lái)判斷101到200之間的整數(shù)中有多少個(gè)是素?cái)?shù),并輸出這些素?cái)?shù),需要的小伙伴可以了解下2026-01-01
詳解Intellij IDEA中.properties文件中文顯示亂碼問(wèn)題的解決
這篇文章主要介紹了詳解Intellij IDEA中.properties文件中文顯示亂碼問(wèn)題的解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Hadoop?MapReduce實(shí)現(xiàn)單詞計(jì)數(shù)(Word?Count)
這篇文章主要為大家詳細(xì)介紹了如何利用Hadoop實(shí)現(xiàn)單詞計(jì)數(shù)(Word?Count)的MapReduce,文中的示例代碼講解詳細(xì),感興趣的可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Tomcat能起開,但是訪問(wèn)不進(jìn)8080首頁(yè)的問(wèn)題解決方案
這篇文章主要介紹了Tomcat能起開,但是訪問(wèn)不進(jìn)8080首頁(yè)的問(wèn)題解決方案的相關(guān)資料,需要的朋友可以參考下2016-10-10
Java中如何將?int[]?數(shù)組轉(zhuǎn)換為?ArrayList(list)
這篇文章主要介紹了Java中將?int[]?數(shù)組?轉(zhuǎn)換為?List(ArrayList),本文通過(guò)示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
如何使用pipeline和jacoco獲取自動(dòng)化測(cè)試代碼覆蓋率
這篇文章主要介紹了如何使用pipeline和jacoco獲取自動(dòng)化測(cè)試代碼覆蓋率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

