mybtais-plus中page和ipage
时间: 2023-04-09 15:04:35 浏览: 646
的区别是什么?
Page 和 IPage 都是 MyBatis-Plus 提供的分页插件,其中 Page 是 IPage 的实现类。IPage 接口定义了分页的基本属性和方法,而 Page 则在此基础上增加了一些额外的属性和方法,比如排序、总记录数等。因此,使用 Page 可以更方便地进行分页查询,并且可以获取更多的分页信息。
相关问题
mybatis-plus分页查询Ipage
Mybatis-plus提供了IPage接口用于分页查询,可以通过以下步骤进行分页查询:
1. 定义查询条件和分页参数
```java
// 定义查询条件
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 1);
// 定义分页参数
IPage<User> page = new Page<>(1, 10);
```
2. 调用mybatis-plus的selectPage方法进行分页查询
```java
IPage<User> userPage = userService.page(page, queryWrapper);
```
3. 获取分页数据
```java
List<User> userList = userPage.getRecords(); // 获取分页数据列表
long total = userPage.getTotal(); // 获取总记录数
long current = userPage.getCurrent(); // 获取当前页码
long size = userPage.getSize(); // 获取每页记录数
```
完整代码示例:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 1);
IPage<User> page = new Page<>(1, 10);
IPage<User> userPage = userService.page(page, queryWrapper);
List<User> userList = userPage.getRecords();
long total = userPage.getTotal();
long current = userPage.getCurrent();
long size = userPage.getSize();
```
mybatis-plus 自定义 xml分页查询 IPage<T> page
在 Mybatis-Plus 中,我们可以通过自定义 XML 文件来实现复杂的 SQL 操作,包括分页查询。下面是一个示例,演示如何使用自定义 XML 文件实现 Mybatis-Plus 分页查询:
```xml
<!-- Mybatis 自定义 XML 文件 -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUserList" resultType="com.example.entity.User">
select * from user
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
</where>
</select>
<!-- 分页查询 -->
<select id="selectUserPage" resultMap="userResultMap">
select * from user
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
</where>
<if test="page != null">
limit #{page.current}, #{page.size}
</if>
</select>
</mapper>
```
其中,`selectUserList` 是一个普通的查询语句,`selectUserPage` 则是一个带有分页参数的查询语句。在分页查询中,我们需要使用 `limit` 关键字来控制返回数据的数量,同时,我们也需要将分页信息传递给 SQL 语句。这里,我们通过 Mybatis 的参数处理机制来实现,在 XML 文件中使用 `${paramName}` 取出参数值。
接下来,我们需要在 Java 代码中调用该查询语句,从而实现分页查询。示例代码如下:
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> getUserPage(Page<User> page, String name) {
return baseMapper.selectUserPage(page, name);
}
}
```
在 Service 实现类中,我们通过 `baseMapper` 来调用自定义 SQL 语句,其中 `selectUserPage` 方法返回一个 `IPage<User>` 对象,表示查询结果。最后,我们将该对象返回给控制器,完成分页查询。
阅读全文