阅读量:0
在Java的SSM(Spring + Spring MVC + MyBatis)框架中,实现分页查询可以通过以下步骤来完成:
- 创建分页查询的SQL语句
在MyBatis的Mapper XML文件中,编写分页查询的SQL语句。例如,对于一个名为User
的表,可以创建如下分页查询的SQL语句:
<select id="selectPage" parameterType="map" resultMap="BaseResultMap"> SELECT * FROM user LIMIT #{offset}, #{pageSize} </select>
其中,#{offset}
表示查询的起始位置,#{pageSize}
表示每页显示的记录数。
- 创建分页参数对象
创建一个分页参数对象,用于接收前端传递的分页信息。例如,创建一个名为PageParam
的Java类:
public class PageParam { private int pageNum; // 当前页 private int pageSize; // 每页显示的记录数 // getter and setter methods }
- 修改Mapper接口
在Mapper接口中,添加一个分页查询的方法,接收分页参数对象作为参数。例如:
public interface UserMapper { List<User> selectPage(PageParam pageParam); }
- 在Service层调用Mapper方法
在Service层,注入Mapper接口,并调用分页查询的方法。例如:
@Service public class UserService { @Autowired private UserMapper userMapper; public List<User> selectPage(PageParam pageParam) { return userMapper.selectPage(pageParam); } }
- 在Controller层接收分页参数并调用Service方法
在Controller层,接收前端传递的分页信息,并调用Service层的分页查询方法。例如:
@Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/selectPage") public String selectPage(PageParam pageParam, Model model) { List<User> userList = userService.selectPage(pageParam); model.addAttribute("userList", userList); model.addAttribute("pageParam", pageParam); return "userList"; } }
- 在前端页面显示分页信息
在前端页面,使用分页组件(如Bootstrap的pagination插件)显示分页信息,并添加点击分页按钮时发送分页请求的逻辑。例如,使用Thymeleaf模板引擎:
<div class="user-list"> <table> <!-- 显示用户列表 --> </table> </div> <div class="pagination"> <span th:text="${pageParam.pageNum}"></span> <a th:href="@{/selectPage(pageNum=${pageParam.pageNum} - 1, pageSize=${pageParam.pageSize})}">上一页</a> <span th:text="${pageParam.pageNum * pageParam.pageSize} - ${pageParam.pageSize}">共${pageParam.totalCount}条,当前第${pageParam.pageNum}页</span> <a th:href="@{/selectPage(pageNum=${pageParam.pageNum} + 1, pageSize=${pageParam.pageSize})}">下一页</a> </div>
通过以上步骤,就可以实现基于SSM框架的分页查询功能。