解析springboot+thymeleaf+mybatis+pagehelper+easyui的分页

今天简单给大家分享一下分页,使用的是springboot框架,简单说一下springboot,这是我用的感觉最爽的一个框架了,差不多什么都可以集成,集成也比较方便,只需要在maven中引入依赖包,在application.properties配置好需要用的参数,代码中用也好多时候直接使用注解就可以了,太简单方便了,在说一下thymeleaf模板引擎,他也是和springboot最搭的了,官方也推荐使用这个模板引擎,不推荐使用jsp,说起jsp,真是有点恶心了,之前公司项目就是用的jsp,用jsp的好处就是修改不需要重新编译重启服务器,但是代码中一会java代码,一会html/js/css,看的有点头疼,最要命的是有时候没有源码,把.class文件反编译成.java文件,改完以后在编译成.class文件,难受,在说一下mybatis,mybatis是半自动的,需要写sql,我身边的人也有好多用的是Hibernate框架,这个框架的好处是简单的crud,以及简单的业务是不需要写sql的,但是业务复杂还是挺麻烦的,我个人还是喜欢mybatis多一点,至于pagehelper和easyui分页还是看代码吧,嘻嘻

 

 

1、创建一个springboot项目

解析springboot+thymeleaf+mybatis+pagehelper+easyui的分页_第1张图片

 

2、在pom.xml中引入依赖


  
        org.springframework.boot
        spring-boot-starter-parent
        2.0.5.RELEASE
         
    
    

    
        UTF-8
        UTF-8
        1.8
    

    
    	
    	
            com.github.pagehelper
            pagehelper
            5.1.2
        
        
            com.github.pagehelper
            pagehelper-spring-boot-autoconfigure
            1.2.5
        

        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.5
        
    
    
    	
    
    
    	
		  org.codehaus.jackson
		  jackson-mapper-asl
		  1.9.13
		

    	
		    commons-beanutils
		    commons-beanutils
		    1.8.1
		
    
    	
		    org.apache.commons
		    commons-lang3
		    3.2.1
		
    	
    
    
    	
        
            org.springframework.boot
            spring-boot-starter-web
        

		
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
        
            org.springframework.boot
            spring-boot-devtools
            true
              true
        
        
        
        
        
        
        
					
					    org.mybatis.spring.boot
					    mybatis-spring-boot-starter
					    1.3.2
					    runtime			    
					
		 			
		 		
		 			
						mysql
						mysql-connector-java
						runtime
					 
					
					
						com.alibaba
						druid
						1.1.6
					
        
        
        
        
        
        
    javax.el
    javax.el-api
    3.0.0

        
    

    
        myspringboot
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                maven-compiler-plugin
                
                    1.8
                    1.8
                
            
        
    

 

 

3、在resource目录下创建application.properties文件,并添加配置信息

#数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/zilanxuan?useSSL=false&useUnicode=true&characterEncoding=utf-8
spring.datasource.username =root
spring.datasource.password =root

#数据源配置(使用阿里的Druid)
spring.datasource.type =com.alibaba.druid.pool.DruidDataSource

#mybatis配置
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#mybatis.typeAliasesPackage=zilanxuan.entity.User
mybatis.mapperLocations=classpath:mapper/*.xml

#Pagehelper配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql



#整合thymeleaf模板引擎
spring.thymeleaf.cache=false
spring.thymeleaf.mode=HTML5
#前缀
spring.thymeleaf.prefix=classpath:/static/
#编码
spring.thymeleaf.encoding=UTF-8
#类型
spring.thymeleaf.content-type=text/html
#名称的后缀
spring.thymeleaf.suffix=.html

 

4、到现在就可以开始写代码了,通过前三步就把springboot+thymeleaf+mybatis的依赖环境就都配置好了,现在开始写controller层

@Controller
public class UserController {
	
	@Autowired
	private UserService userService;

	/**
	 * 这种方式是通过thymeleaf这种方式进行分页
	 * @param model 使用model将数据信息传到页面
	 * @param user  这个user主要是做查询,根据user的字段进行查询
	 * @param pageNum 第几页
	 * @param pageSize 一页显示的记录数
	 * @return
	 */
	@RequestMapping("/index")
	public String getUserList(Model model,User user,@RequestParam(defaultValue="1") Integer pageNum,@RequestParam(defaultValue="5") Integer pageSize){
		model.addAttribute("pager", userService.getUsers(user,pageNum,pageSize));
		return "index";
	}
	
	
	@RequestMapping("/dev")
	public String getdev() {
		return "dev";
	}
	
	
	/**
	 * 这种方式是easyui方式进行分页的,
	 * 这种方式简单方便,它会发送接口两个参数page(第几页)和rows(一页显示几条数据)
	 * 返回的时候需要两个参数total(总记录数)和rows(一页中的数据,类型为List)
	 * 推荐
	 * @param user
	 * @param page
	 * @param rows
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/d")
	public Map getusers(User user,@RequestParam(defaultValue="1") Integer page,@RequestParam(defaultValue="5") Integer rows){
		Map map = new HashMap();
		Pager pager = userService.getUsers(user,page,rows);
		map.put("total", pager.getTotalRecord());
		map.put("rows", pager.getDataList());
		return map;
	}
	
}

 

5、写service层

 

@Service
public class UserService {

	@Autowired
	private UserMapper userMapper;
	
	public Pager getUsers(User user,Integer pageNum,Integer pageSize) {
		//自己做的查询,查询总共有多少条记录数
		Integer sumData = userMapper.getSize();
		
		//使用pagehelper进行分页,把两个参数传入,简单吧,哈哈
		PageHelper.startPage(pageNum, pageSize);
		
		//查询所有数据,这块代码需要和上面pagehelper的代码挨着,
		//否则会出现进行没有分页的情况,
		//挨着上面代码,pagehelper会自动把分页数据返回来,不然就把所有的数据都给你返回来了
		//比如说pageNum=1,pageSize=5,有上面一行代码,虽然你查的是所以数据,但是它
		//只会给你返回5条数据,所有我才第一行自己写了一个查询总共有多少条记录
		List users =  userMapper.findAllUser(user);
		Pager us = new Pager();
		Integer totalRecord = sumData;
		Integer totalPage = totalRecord/pageSize;
		us.setDataList(users);
		us.setPageSize(pageSize);
		us.setCurrentNum(pageNum);
		us.setTotalPage(totalRecord%pageSize==0?totalPage:totalPage+1);
		us.setTotalRecord(totalRecord);
		us.setFirst(pageNum==1?true:false);
		us.setLast(pageNum==totalPage?true:false);
		return us;
	}

}

 

6、写DAO层以及写mapper.xml

public interface UserMapper {
	List findAllUser(@Param(value="user") User user);
	Integer getSize();
}

这是说一下我的UserMapper.xml文件写在了resource下创建的staitc文件夹下




    
     
     
		a.id AS "id",
		a.readname AS "readname",
		a.password AS "password",
		a.tel AS "tel",
		a.username AS "username"
     
     
     
     	
     
     
     
      
      
      
      
      
 

 

7、使用thymeleaf进行分页的页面代码

 




    
   	thymeleaf方式获取数据及分页



   
     
     

-----------(thymeleaf方式获取数据及分页)-------------

用户列表

ID 昵称 密码 用户名 手机号
首页

上一页

上一页

下一页

下一页

尾页
当前第1页;共10条记录;共3

 

8、使用easyui做分页的页面代码

这是说一下easyui是一个前段框架,需要引入js/css包

easyui官方地址http://www.jeasyui.net/

 




	
	使用easyui方式实现分页
	
	
	
	
	
	


	
	
	

-----------------使用easyui方式实现分页-------------------

ID 手机号 用户名 密码 昵称

 

到这里就结束了,祝你能有所收获

点击获取demo源码

你可能感兴趣的:(分页,springboot,pagehelper)