温馨提示×

java中ssm怎样实现分页查询

小樊
82
2024-09-28 21:32:44
栏目: 编程语言

在Java的SSM(Spring + Spring MVC + MyBatis)框架中,实现分页查询可以通过以下步骤来完成:

  1. 创建分页查询的SQL语句

在MyBatis的Mapper XML文件中,编写分页查询的SQL语句。例如,对于一个名为User的表,可以创建如下分页查询的SQL语句:

<select id="selectPage" parameterType="map" resultMap="BaseResultMap">
    SELECT * FROM user
    LIMIT #{offset}, #{pageSize}
</select>

其中,#{offset}表示查询的起始位置,#{pageSize}表示每页显示的记录数。

  1. 创建分页参数对象

创建一个分页参数对象,用于接收前端传递的分页信息。例如,创建一个名为PageParam的Java类:

public class PageParam {
    private int pageNum; // 当前页
    private int pageSize; // 每页显示的记录数

    // getter and setter methods
}
  1. 修改Mapper接口

在Mapper接口中,添加一个分页查询的方法,接收分页参数对象作为参数。例如:

public interface UserMapper {
    List<User> selectPage(PageParam pageParam);
}
  1. 在Service层调用Mapper方法

在Service层,注入Mapper接口,并调用分页查询的方法。例如:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> selectPage(PageParam pageParam) {
        return userMapper.selectPage(pageParam);
    }
}
  1. 在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";
    }
}
  1. 在前端页面显示分页信息

在前端页面,使用分页组件(如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框架的分页查询功能。

0