Mybatis_PageHelper的使用

	@RequestMapping("list.html")
	public String list(Model model, HttpServletRequest request) {
		String sqlId = "menu.mysql.selectMenu";
//		list = MybatisUtils.selectList(sqlId, SpringUtils.getParameter(request));
		Page<Object> list = (Page<Object>) MybatisUtils.selectListByPage(sqlId, SpringUtils.getParameter(request));
//		model.addAttribute("list", new PageInfo(list));
		model.addAttribute("pageNum", list.getPageNum());
		model.addAttribute("pages", list.getPages());
		model.addAttribute("list", list);
		return "menu/list";
	}
	@SuppressWarnings("unchecked")
	public static <E> List<E> selectListByPage(String sqlId,Object parameter){
		Map<String, Object> map = (Map<String, Object>) parameter;
		String page = (String) map.get("page");
		int pageNum = 1;
		if(page != null && page.trim().length() != 0){
			pageNum = Integer.parseInt(page);
		}
		PageHelper.startPage(pageNum, Constant.pageSize, true);
		List<Object> result = getSqlSession(sqlId).selectList(sqlId, parameter);
		return dealMapResult(result);
	}


list.jsp
			<c:forEach items="${list}" var="item">
				<tr id='<c:out value="${item.menuId}"/>' align="left">
					<td><c:out value="${item.parentId}"/></td>
					<td><c:out value="${item.menuId}"/></td>
					<td><c:out value="${item.menuName}"/></td>
					<td><c:out value="${item.url}"/></td>
					<td><c:out value="${item.title}"/></td>
					<td><c:out value="${item.leaf}"/></td>
					<td><c:out value="${item.orderSeq}"/></td>
					<td οnclick='goEdit(<c:out value="${item.menuId}"/>)'>编辑</td>
					<td οnclick='doDelete(<c:out value="${item.menuId}"/>)'>删除</td>
				</tr>
			</c:forEach>
				<tfoot>
					<tr>
						<td colspan="9" align="center" class="p">
							<c:if test="${pageNum != 1}">
								<a href="list.html?query=a&page=${pageNum - 1}">上一页</a>
							</c:if>
							<c:if test="${pages != 1}">
								<c:forEach var="pageIndex" begin="1" end="${pages}">
									<c:choose>
										<c:when test="${pageNum == pageIndex}">
											<a>${pageIndex}</a>
										</c:when>
										<c:otherwise>
											<a href="list.html?query=a&page=${pageIndex}">${pageIndex}</a>
										</c:otherwise>
									</c:choose>
								</c:forEach>
							</c:if>
							<c:if test="${pageNum != pages}">
								<a href="list.html?query=a&page=${pageNum+1}">下一页</a>
							</c:if>
						</td>
					</tr>
				</tfoot>


mybatis-config.xml
	<plugins>
	    <!-- packageName为PageHelper类所在包名 -->
	    <plugin interceptor="org.me.common.util.PageHelper">
	        <property name="dialect" value="mysql"/>
	    </plugin>
	</plugins>
统一返回值为 Page<E>(可以直接按 List使用),方便在页面使用EL表达式,如 ${page.pageNum}, ${page.total}
对这种方式使用,一种是如果直接用Page包装list,还要单独get出来,再设置回去model.addAttribute("pageNum", list.getPageNum());
第二种是使用PageInfo对list再包装一次,页面就可以直接使用model.addAttribute("list", new PageInfo(list));
Mybatis_PageHelper

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MyBatis PageHelper是一个用于实现分页查询的插件,它可以帮助我们快速实现分页功能,并且与Mapper.xml完全解耦,避免了直接编写分页SQL的麻烦。在使用MyBatis PageHelper时,可以根据不同的情况进行配置。 如果你使用的是Spring Boot,可以直接配置几个属性来启用MyBatis PageHelper。在application.properties或application.yml文件中,添加以下配置项: ``` mybatis.configuration-properties.helperDialect=mysql mybatis.configuration-properties.offsetAsPageNum=true mybatis.configuration-properties.rowBoundsWithCount=true mybatis.configuration-properties.reasonable=true mybatis.configuration-properties.mapper-locations=mybatis/mapper/*.xml ``` 其中,helperDialect指定了数据库的方言,offsetAsPageNum设置为true表示使用RowBounds分页方式,rowBoundsWithCount设置为true表示查询总数时会同时执行count查询,reasonable设置为true表示当pageNum<=0或pageNum>pages时会自动修正为合理的值,mapper-locations指定了Mapper.xml文件的位置。 另外,如果你使用的是Spring Boot,还可以直接引入pagehelper-spring-boot-starter依赖,它会自动配置PageHelper,省去了许多不必要的配置。 ```xml <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> ``` 通过以上配置,你就可以在MyBatis使用PageHelper来实现分页查询了。 #### 引用[.reference_title] - *1* [【Mybatis使用PageHelper进行分页查询](https://blog.csdn.net/Flying_Ape/article/details/128098911)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Mybatis分页插件——PageHelper快速入门](https://blog.csdn.net/weixin_52850476/article/details/124802877)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值