java项目使用pageHelper做分页

1,maven引入pageHelper依赖

<dependency>  
    <groupId>com.github.pagehelper</groupId>  
    <artifactId>pagehelper</artifactId>  
    <version>4.0.0</version>  
</dependency>  


2,mybatis整合pageHelper配置文件

mybatis配置文件

<!-- spring整合MyBatis -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- 引入pageHelper配置文件 -->
		<property name="configLocation" value="classpath:SqlMapConfig.xml"/>
		<!-- 自动扫描mapping.xml文件 -->
		<property name="mapperLocations" value="classpath:com/sunadver/jimitd/mapping/*.xml"></property>
	</bean>

SqlMapConfig.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 配置管理器 -->
<configuration>

	<!-- 全局setting配置,根据需要添加 -->

	<!-- 配置别名 -->
	<typeAliases>
		<!-- 批量扫描别名,type写要分页查询的对象的路径 -->
		<typeAlias type="org.xxx.xxx.xxx" alias="Orders" />
	</typeAliases>

	<!-- 配置mapper 由于使用spring和mybatis的整合包进行mapper扫描,这里不需要配置了。 必须遵循:mapper.xml和mapper.java文件同名且在一个目录 -->

	<plugins>
	    <!-- com.github.pagehelper为PageHelper类所在包名 -->
	    <plugin interceptor="com.github.pagehelper.PageHelper">
	        <!-- 4.0.0以后版本可以不设置该参数 -->
	        <property name="dialect" value="mysql"/>
	        <!-- 该参数默认为false -->
	        <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
	        <!-- 和startPage中的pageNum效果一样-->
	        <property name="offsetAsPageNum" value="true"/>
	        <!-- 该参数默认为false -->
	        <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
	        <property name="rowBoundsWithCount" value="true"/>
	        <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
	        <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
	        <property name="pageSizeZero" value="true"/>
	        <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
	        <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
	        <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
	        <property name="reasonable" value="true"/>
	        <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
	        <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
	        <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->
	        <!-- 不理解该含义的前提下,不要随便复制该配置 -->
	        <property name="params" value="pageNum=start;pageSize=limit;"/>
	        <!-- 支持通过Mapper接口参数来传递分页参数 -->
	        <property name="supportMethodsArguments" value="true"/>
	        <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
	        <property name="returnPageInfo" value="check"/>
	    </plugin>
	</plugins>
</configuration>

3,页面设置pageNum与pageSize参数

 <script>
		  	$(function() {
				/*
				 * 查询所有人
				 */
				$("#search_button").click(function() {
					var pageNum = "1";
					var pageSize = "10";
					var ordId = $("#ordId").val();
			    	var tel = $("#tel").val();
			    	var uname = $("#uname").val();
			    	var delivery_id = $("#way").val();
			    	queryAllPerson(pageNum, pageSize);
				});
				
			});
      
      
		      function queryAllPerson(pageNum, pageSize){
		    	var ordId = $("#ordId").val();
			    var tel = $("#tel").val();
			    var uname = $("#uname").val();
			    var delivery_id = $("#way").val();
		  		$("#pagehelper_id").html("数据正在玩命加载中......");
		  		$("#pagehelper_id").load("${pageContext.request.contextPath}/order/queryOrderList?pageNum="+pageNum+
		  				"&pageSize="+pageSize+"&uname="+uname+"&tel="+tel+"&ordId="+ordId+"&delivery_id="+delivery_id);
		  	}
      </script>

4,后台控制器代码

@RequestMapping("/queryOrderList")
	public String queryOrderList(HttpServletRequest request, Model model, HttpSession session) {
		try {
			
			String pageNum = request.getParameter("pageNum"); // 页数
			String pageSize = request.getParameter("pageSize"); // 每页显示条数

			/****************** 多条件 *****************************/
			String oid = request.getParameter("ordId");
			String tel = request.getParameter("tel");
			String uname = request.getParameter("uname");
			String parameter = request.getParameter("delivery_id");

			Map<String, Object> map = new HashMap<String, Object>();
			if ((parameter.equals("1")) || (parameter.equals("2"))) {
				int delivery_id = Integer.parseInt(parameter);
				map.put("deliveryId", delivery_id);
			}
			map.put("ordId", oid);
			map.put("name", uname);
			map.put("tel", tel);

			/******************** 分页查询 ***********************/
			int num = 1;
			int size = 10;
			if (pageNum != null && !"".equals(pageNum)) {
				num = Integer.parseInt(pageNum);
			}
			if (pageSize != null && !"".equals(pageSize)) {
				size = Integer.parseInt(pageSize);
			}

			// pageHelper分页查询对象
			PageHelper.startPage(num, size);
			List<Orders> orderList = orderService.selectOrderListandUserItems(map);
			PageInfo<Orders> pagehelper = new PageInfo<Orders>(orderList);
			model.addAttribute("pagehelper", pagehelper);
			return "olist";

		} catch (Exception e) {
			return "login";
		}

	}

5,order.xml映射文件不在粘贴根据自己实际情况来做条件查询就可以了,到此基本完成 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soulbboy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值