为什么要配制mybatis plus分页插件
时间: 2023-09-24 12:14:15 浏览: 47
Mybatis Plus 分页插件是 Mybatis Plus 框架提供的一种分页查询的解决方案。它可以帮助我们快速实现分页查询功能,提高开发效率。使用 Mybatis Plus 分页插件,可以直接在 Mapper 接口中定义分页查询方法,而不需要编写复杂的 SQL 语句。
Mybatis Plus 分页插件还提供了很多有用的功能,如自动计算总记录数、自定义分页 SQL、物理分页和逻辑分页等。这些功能可以帮助我们更加灵活地处理分页查询的场景。
因此,配制 Mybatis Plus 分页插件可以让我们更加方便地实现分页查询功能,提高开发效率。同时,它还提供了很多有用的功能,可以帮助我们更好地处理分页查询的场景。
相关问题
为什么要配制mybatis plus分页插件 具体代码实现 分页查询
Mybatis Plus是Mybatis的增强工具,可以简化Mybatis的开发过程,其中分页查询是常用的功能之一。Mybatis Plus提供了一个分页插件,可以方便的实现分页查询。
具体代码实现如下:
1. 引入Mybatis Plus和分页插件依赖。
```xml
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.4.1</version>
</dependency>
```
2. 配置分页插件。
```java
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
3. 在Mapper.xml文件中使用分页查询。
```xml
<select id="selectUserList" resultType="User">
select * from user
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
</where>
order by id desc
limit #{pageNum}, #{pageSize}
</select>
```
在以上代码中,#{pageNum}和#{pageSize}是Mybatis Plus提供的分页参数,可以直接在Mapper方法的参数中使用。例如:
```java
public interface UserMapper extends BaseMapper<User> {
List<User> selectUserList(@Param("name") String name, @Param("pageNum") long pageNum, @Param("pageSize") long pageSize);
}
```
这样就可以方便的实现分页查询了。
mybatis plus分页插件
Mybatis Plus是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis Plus提供了一个内置的分页插件PaginationInnerInterceptor,可以方便地实现分页功能。
以下是使用Mybatis Plus分页插件的步骤:
1.在pom.xml文件中添加Mybatis Plus的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
```
2.在MyBatis的配置文件中添加分页插件:
```xml
<!-- Mybatis Plus分页插件 -->
<plugins>
<plugin interceptor="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor">
<!-- 数据库类型 -->
<property name="DbType" value="mysql"/>
</plugin>
</plugins>
```
3.在Mapper接口中定义分页方法:
```java
public interface UserMapper extends BaseMapper<User> {
/**
* 分页查询用户列表
* @param page 分页参数
* @return 用户列表
*/
IPage<User> selectUserPage(Page<User> page);
}
```
4.在Service中调用Mapper接口的分页方法:
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> selectUserPage(Page<User> page) {
return baseMapper.selectUserPage(page);
}
}
```
5.在Controller中调用Service的分页方法:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public IPage<User> getUserList(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return userService.selectUserPage(page);
}
}
```