IDEA整合ssm框架使用PageHelper实现分页

前提:我已经实现了数据库的查询功能
详情见博文:https://blog.csdn.net/weixin_42493072/article/details/94403204

开发工具

IntelliJ IDEA 2018
JDK1.8
tomcat 7.0.79
Mysql 5.0
Maven 3.6.0

开发步骤

  • 1.在pom.xml中引入分页插件的资源位置
<dependency>
           <groupId>com.github.pagehelper</groupId>
           <artifactId>pagehelper</artifactId>
           <version>5.1.2</version>
 </dependency>
  • 2.在applicationContext.xml中配置分页插件
<property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="helperDialect">mysql</prop>
                            <prop key="resonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
</property>
  • 3.UserInfo.java实体类的实现
package com.bean;

public class UserInfo {
    private int id;
    private String password;
    private String username;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return "com.zhongruan.bean.UserInfo{" +
                "id=" + id +
                ", password='" + password + '\'' +
                ", username='" + username + '\'' +
                '}';
    }
}
  • 4.DAO层实现的方法
public interface IUserDao {
    public List<UserInfo> findall();
}
  • 5.Service层实现的方法

IUserService.java

public interface IUserService {
    List<UserInfo> findall(int page, int size);
}

UserService.java

@Service
public class UserService implements IUserService {

    @Autowired
    private IUserDao userDao;

    @Override
    public List<UserInfo> findall(int page, int size) {
        PageHelper.startPage(page,size);
        return userDao.findall();
    }
}
  • 6.jsp页面负责显示数据,实现分页效果

主页面标签栏:
(点击“用户管理”标签,显示第一页的用户信息:page=1,每页5条信息:size=5)

<ul class="treeview-menu">
	<li id="system-setting">
		<a href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=5">
		    <i class="fa fa-circle-o"></i> 用户管理
		</a>
	</li>
	<li id="system-setting">
	    <a href="#">
	       <i class="fa fa-circle-o"></i> 角色管理
		</a>
	</li>
</ul>

user-list.jsp中显示用户信息的列表:

<!--数据列表-->
		<table id="dataList" class="table table-bordered table-striped table-hover dataTable">
				<thead>
					<tr>
						<th class="" style="padding-right: 0px">
					    	<input id="selall" type="checkbox" class="icheckbox_square-blue">
						</th>
						<th class="sorting_asc">ID</th>
						<th class="sorting_desc">用户名</th>
						<th class="sorting_asc sorting_asc_disabled">密码</th>
						<th class="text-center">操作</th>
				 </tr>
			 </thead>
			<tbody>
			  <c:forEach var="user" items="${ps.list}">
						<tr>
							 <td><input name="ids" type="checkbox"></td>
							<td>${user.id}</td>
							<td>${user.username}</td>
							<td>${user.password}</td>
							<td class="text-center">
								<a href="${pageContext.request.contextPath}/user/toUpdate.do?id=${user.id}" class="btn bg-olive btn-xs">更新</a>
								<a href="${pageContext.request.contextPath}/user/delete.do?id=${user.id}" class="btn bg-olive btn-xs">删除</a>
								<a href="#" class="btn bg-olive btn-xs">添加角色</a>
							</td>
					</tr>
		    	</c:forEach>
			</tbody
    </table>
<!--数据列表/-->

<!---------------上下页、首尾页设置-------------------------------->
</div>
	<div class="box-tools pull-right">
		<ul class="pagination">
				<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=5" aria-label="Previous">首页</a></li>
				<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${ps.pageNum-1}&size=5">上一页</a></li>
		<c:forEach begin="1" end="${ps.pages}" var="pageNumber" >
				<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageNumber}&size=5">${pageNumber}</a></li>
		</c:forEach>
				<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${ps.pageNum+1}&size=5">下一页</a></li>
				<li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${ps.pages}&size=5" aria-label="Next">尾页</a></li>
		</ul>
     </div>
 </div>
  • 7.UserController.java中实现页面跳转
   @RequestMapping("/findAll.do")
    public ModelAndView findall(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "5")int size) {
        List<UserInfo> all = userService.findall(page, size);
        PageInfo pageInfo= new PageInfo(all);
        ModelAndView mv=new ModelAndView();
        mv.addObject("ps", pageInfo);
        mv.setViewName("/user-list");
        return mv;
    }

运行结果

在这里插入图片描述
在这里插入图片描述

SSM使用PageHelper实现分页非常简单。首先,你需要在项目的pom.xml文件中引入PageHelper的依赖。然后,在你的Mapper接口中添加对应的方法,并在该方法上添加PageHelper分页注解。最后,你可以在Service层或Controller层中调用该方法并传入分页参数,即可实现分页。下面是一个示例代码: 1. 首先,在pom.xml文件中引入PageHelper的依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> ``` 2. 在Mapper接口中添加分页方法,并使用PageHelper的注解进行分页配置: ```java import com.github.pagehelper.Page; import org.apache.ibatis.annotations.Param; public interface YourMapper { // 使用PageHelper的注解进行分页配置 List<YourEntity> getYourList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize); } ``` 3. 在Service层或Controller层中调用分页方法并传入分页参数: ```java import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @Service public class YourService { @Autowired private YourMapper yourMapper; public PageInfo<YourEntity> getYourList(int pageNum, int pageSize) { // 设置分页参数 PageHelper.startPage(pageNum, pageSize); // 调用Mapper方法查询数据 List<YourEntity> list = yourMapper.getYourList(pageNum, pageSize); // 封装成PageInfo对象返回 PageInfo<YourEntity> pageInfo = new PageInfo<>(list); return pageInfo; } } ``` 通过以上三个步骤,你就可以在SSM使用PageHelper实现分页了。首先,在pom.xml文件中引入PageHelper的依赖,然后在Mapper接口中添加分页方法并使用PageHelper的注解进行分页配置,最后在Service层或Controller层中调用分页方法并传入分页参数,即可实现分页。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【分页查询】在SSM环境中使用PageHelper](https://blog.csdn.net/weixin_44757863/article/details/109728886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SSM整合实例--(二)PageHelper分页操作](https://blog.csdn.net/Double____C/article/details/91048168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值