myBatis分页插件pageHelper

分页查询是开发项目时必不可少的,这里给大家介绍一个myBatis中的分页插件pageHelper,可以很方便快速的实现分页查询,我们这里的案例还是上篇博客说到的商品查询,话不多说我们开始。

1、项目架构

开发工具:eclipse

使用技术:Spring,SpringMVC,myBatis,mysql,maven

开发环境:需要JDK,maven,mysql数据库

2、实现思路

2.1 创建数据表

2.2 项目创建

2.3 配置pom.xml文件

2.4 整合ssm框架

2.5 完成商品列表页

2.6 分别完成web层,service层和dao层

2.7 测试

接下来我们分别演示

3、具体实现

3.1 创建数据表

CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id',
  `goods_name` varchar(255) DEFAULT NULL COMMENT '商品名称',
  `goods_type` varchar(255) DEFAULT NULL COMMENT '商品分类',
  `goods_price` double(255,0) DEFAULT NULL COMMENT '商品单价',
  `goods_count` int(11) DEFAULT NULL COMMENT '商品数量',
  PRIMARY KEY (`goods_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.2 创建项目

右击eclipse项目列表空白处选择Maven Project,点击next

myBatis分页插件pageHelper_第1张图片

选择web-app,点击next

myBatis分页插件pageHelper_第2张图片

填写组织名和模块名

myBatis分页插件pageHelper_第3张图片

项目搭建出来有报错,提示没有找到HttpServlet

myBatis分页插件pageHelper_第4张图片

因为jsp的本质就是一个Servlet,我们需要导入Servlet的jar包,而tomcat中就有这个jar,我们将tomcat引入即可,右击项目Build Path------》Configure Build Path

myBatis分页插件pageHelper_第5张图片

选择add Library---》Server Runtime---》选择tomcat---》finish----》apply and close,应用并关闭,发现项目已经不报错

myBatis分页插件pageHelper_第6张图片

还会发现项目使用的jdk版本为1.5,这是maven项目内置的版本,我们修改为自己的JDK版本,这里我使用的是1.8

选择默认的选中的就是环境变量中配置的JDK,点击完成,应用关闭即可

myBatis分页插件pageHelper_第7张图片

还有我们的web.xml文件比较奇怪,也需要修改

myBatis分页插件pageHelper_第8张图片

将内容改为,就是之前web项目的配置文件粘贴过来就行



	
	

至此我们的项目搭建完成,项目结构如下

myBatis分页插件pageHelper_第9张图片

3.3 配置pom文件


	
		UTF-8
		5.1.2.RELEASE
	

	
		
			junit
			junit
			3.8.1
			test
		
		
		
			jstl
			jstl
			1.2
		
		
		
			mysql
			mysql-connector-java
			5.1.38
		
		
		
			commons-dbcp
			commons-dbcp
			1.4
		
		
		
			org.apache.logging.log4j
			log4j-core
			2.6.1
		
		
		
			org.mybatis
			mybatis
			3.4.6
		
		
		
			org.mybatis
			mybatis-spring
			1.3.1
		
		
		
			org.springframework
			spring-context
			${spring.version}
		
		
		
			org.aspectj
			aspectjweaver
			1.8.9
		
		
		
			org.springframework
			spring-jdbc
			${spring.version}
		
		
			org.springframework
			spring-tx
			${spring.version}
		
		
			org.springframework
			spring-web
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
		
			com.github.pagehelper
			pagehelper
			4.1.6

		
	

3.4 整合ssm框架

注意:maven项目的配置都在resources下,分别为:

spring-mvc.xml:SpringMVC 的配置文件

spring-mybatis.xml:Spring与myBatis的整合文件

db.properties:数据库配置文件

log4j.properties:日志配置文件

3.4.1 spring-mvc.xml配置文件





	

	
	
		
		
	

3.4.2 spring-mybatis.xml配置文件

注意:这里与之前ssm整合时的不同在于SqlSessionFactoryBean中还需要引入pageHelper插件





	
		
	
	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	

	
	
		
		
		
		
		
			
				
					
						
							dialect=mysql
							reasonable=true
						
					
				
			
		
	
	
	
		
	
	
	
		
	

3.4.3 db.properties文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///day11_02
username=root
password=root
initialSize=5
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000

3.4.4 log4j.properties文件

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:\mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=DEBUG, stdout

3.4.4 web.xml配置文件




	
		org.springframework.web.context.ContextLoaderListener
	
	
		springDispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
		
		
			contextConfigLocation
			classpath:spring-mvc.xml
		
		1
	

	
	
		springDispatcherServlet
		*.do
	
	
		contextConfigLocation
		classpath:spring-mybatis.xml
	

3.5 显示页面(show.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>




商品列表



	
商品列表
商品编号 商品名称 商品类型 商品价格 剩余数量
${good.goods_id } ${good.goods_name } ${good.goods_type } ${good.goods_price } ${good.goods_count }

一共${page.pages}页

第一页 下一页 上一页 最后页

3.6 Controller类

@Controller
public class GoodsController {

	@Resource(name="goodsService")
	private IGoodsService goodsService;
	
	@RequestMapping("goods.do")
	  public String userList(@RequestParam(required=true,defaultValue="1") Integer page,
			  HttpServletRequest request){
	      //PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,
		 //page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
	      PageHelper.startPage(page, 3);
	      //查询
	      List goods = goodsService.queryAll();
	      //创建PageInfo对象,保存查询出的结果,PageInfo是pageHelper中的对象
	      PageInfo p=new PageInfo(goods);
	      //将数据存放到request域中
	      request.setAttribute("page", p);
	      request.setAttribute("goods",goods);
	      //返回页面
	      return "show";
	  }
}

3.7 Service层

3.7.1 接口

public interface IGoodsService {

	List queryAll();//查询所有
	
}

3.7.2 实现类

@Service("goodsService")
public class GoodsService implements IGoodsService{

	@Resource
	private IGoodsDao goodsDao;

	public List queryAll() {
		return goodsDao.queryAll();
	}
	
}

3.8 Dao层

public interface IGoodsDao {
	List queryAll();
}

3.9 实体类映射文件

注意:该文件创建在resources目录下的com.zhiyou100.mapping目录下

myBatis分页插件pageHelper_第10张图片





	
	
		
		
		
		
		
		
		
	
	
	GOODS_ID,GOODS_NAME,GOODS_TYPE,GOODS_PRICE,GOODS_COUNT
	
	

3.8 测试运行

运行项目在浏览器上输入请求地址出现以下页面

myBatis分页插件pageHelper_第11张图片

至此即可使用pageHelper插件实现分页查询,不需要再写以前那么多分页代码,我们专注于业务逻辑即可。需要注意的地方是使用pageHelper需要将相关jar包导入,在sqlSessionFactoryBean中配置pageHelper插件即可

项目下载地址:https://gitee.com/stt0626/mybatis-pagehelper.git

盛年不重来,一日难再晨

你可能感兴趣的:(Java技术)