在使用 SSM (Spring + Spring MVC + MyBatis) 框架进行分页查询时,通常有两种方式:
- 在 MyBatis 中使用物理分页。这种方式比较简单,但是效率较低,因为它会把所有数据都查询出来再进行分页。
下面是一个示例代码:
<select id="getList" resultType="com.example.model.User">
SELECT * FROM user LIMIT #{offset}, #{limit}
</select>
然后在 Java 代码中,可以使用 RowBounds
类进行分页:
int pageNum = 1;
int pageSize = 10;
int offset = (pageNum - 1) * pageSize;
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> userList = userMapper.getList(rowBounds);
- 在 MyBatis 中使用逻辑分页。这种方式比较复杂,但是效率较高,因为它只会查询需要的数据。
下面是一个示例代码:
<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
类进行分页:
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 <!--