mybatisplus分页查询xml
时间: 2025-04-25 18:36:16 浏览: 21
### MyBatisPlus 分页查询 XML 配置
为了实现 MyBatis-Plus 的分页查询功能,除了 Java 代码中的配置外,还可以通过 XML 映射文件来进行配置。下面展示如何在 XML 中定义分页查询。
#### 开启分页插件
首先需要确保已经在 Spring Boot 应用程序中开启了 `PaginationInnerInterceptor` 插件,这通常是在应用程序的配置类中完成:
```java
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
此部分属于 Java 代码配置[^3]。
#### 定义 Mapper 接口
接着创建一个继承自 `BaseMapper<T>` 的接口,其中 T 表示实体类类型。例如对于 User 实体有如下接口定义:
```java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {}
```
#### 编写 XML 查询语句
最后编写对应的 XML 文件来描述 SQL 语句。假设有一个名为 `UserMapper.xml` 的映射文件,它应该位于 resources/mapper/ 目录下,并且与上面定义的 `UserMapper.java` 关联起来。以下是使用 PageHelper 进行分页的一个简单例子:
```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.demo.mapper.UserMapper">
<!-- 使用 resultMap 来映射字段 -->
<resultMap id="BaseResultMap" type="com.example.demo.entity.User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<result column="email" property="email"/>
</resultMap>
<!-- 分页查询用户的SQL片段 -->
<select id="selectUsersByPage" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE name LIKE #{name} LIMIT #{page.start},#{page.size};
</select>
</mapper>
```
注意这里的 `LIMIT #{page.start},#{page.size}` 是 MySQL 数据库特有的语法;如果使用的不是 MySQL,则需调整为相应数据库支持的形式[^4]。
然而,在实际项目里推荐的做法是利用 MyBatis-Plus 提供的功能而不是手动书写带有 limit 子句的 SQL 句子。因为当调用了封装好的 API 后,框架会自动处理好不同数据库之间的差异性问题并应用合适的方言进行转换[^1]。
阅读全文
相关推荐

















