在ssm框架中怎么分页查询
时间: 2023-01-31 17:01:28 浏览: 86
在使用 SSM (Spring + Spring MVC + MyBatis) 框架进行分页查询时,通常有两种方式:
1. 在 MyBatis 中使用物理分页。这种方式比较简单,但是效率较低,因为它会把所有数据都查询出来再进行分页。
下面是一个示例代码:
```xml
<select id="getList" resultType="com.example.model.User">
SELECT * FROM user LIMIT #{offset}, #{limit}
</select>
```
然后在 Java 代码中,可以使用 `RowBounds` 类进行分页:
```java
int pageNum = 1;
int pageSize = 10;
int offset = (pageNum - 1) * pageSize;
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> userList = userMapper.getList(rowBounds);
```
2. 在 MyBatis 中使用逻辑分页。这种方式比较复杂,但是效率较高,因为它只会查询需要的数据。
下面是一个示例代码:
```xml
<select id="getList" resultType="com.example.model.User">
SELECT * FROM user
<where>
<if test="name != null">
AND name = #{name}
</if>
</where>
LIMIT #{offset}, #{limit}
</select>
```
然后在 Java 代码中,可以使用 `PageHelper` 类进行分页:
```java
int pageNum = 1;
int pageSize = 10;
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.getList();
PageInfo<User> pageInfo = new PageInfo<>(userList);
```
注意,使用 `PageHelper` 类的分页功能,需要在 `mybatis-config.xml` 文件中添加以下配置:
```xml
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--