为了账号安全,请及时绑定邮箱和手机立即绑定

SpringBoot项目实战(5):集成分页插件

标签:
Java

集成分页插件就比较简单了,我是用的Github上某位大神写的分页插件。具体使用在这先记录下。

添加依赖

<!--分页插件-->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>4.1.1</version>
</dependency>

注:官网已经更新到5.x版本,更新了好多功能,由于分页插件 5.0 版本和 4.x 实现完全不同,这儿我还是用刚开始用的那个版本进行记录,不过建议各位同学去用最新版本(链接在上边哈)。
图片描述

sb程序入口类Applaction.java

package com.blog;
import com.github.pagehelper.PageHelper;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.util.Properties;
/**
 * blog
 * Created by yadong.zhang on com.blog.application
 * User:yadong.zhang
 * Date:2016/10/20
 * Time:18:15
 */
/**
 * 1).@SpringBootApplication标注启动配置入口,run()方法会创建一个Spring应用上下文(Application Context)。
 * SpringBoot通过启动内嵌的Servlet容器(默认tomcat)用来处理Http请求。
 * 2).@RestController是特殊的Controller,他的返回值直接作为Http Response的Body部分返回给浏览器
 * 3).Spring WebMvc框架会将Servlet容器里收到的Http请求根据路径分发到对应的@Controller下进行处理。
 */
@SpringBootApplication
@EnableAspectJAutoProxy
@EnableAutoConfiguration
@ComponentScan
//指定扫描的mapper接口所在的包
@MapperScan("com.blog.mapper")
//启动注解事务管理
@EnableTransactionManagement
//@RestController
public class Applaction {
    //    private static final String MAPPER_SCAN_BASE_PACKAGE = "com.blog.mapper";
    private static final String TYPE_ALIASES_PACKAGE = "com.blog.model";
    private static final String MAPPER_LOCATION = "classpath:/mybatis/*.xml";
    @Bean
    @Autowired
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        // 分页插件
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("returnPageInfo", "check");
        properties.setProperty("params", "count=countSql");
        pageHelper.setProperties(properties);
        //添加插件
        sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageHelper});
        //mybatis.typeAliasesPackage:指定domain类的基包,即指定其在*Mapper.xml文件中可以使用简名来代替全类名(看后边的UserMapper.xml介绍)
        sqlSessionFactoryBean.setTypeAliasesPackage(TYPE_ALIASES_PACKAGE);
        /*
            mybatis.mapperLocations:指定*Mapper.xml的位置
            如果不加会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.blog.mapper.MessageMapper.findMessageInfo异常
            因为找不到*Mapper.xml,也就无法映射mapper中的接口方法。
         */
        sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION));
        return sqlSessionFactoryBean.getObject();
    }

    public static void main(String[] args) {
        SpringApplication.run(Applaction.class, args);
    }
}

分页插件使用测试

 @RequestMapping("/message/{currentPage}")
 public String message(@PathVariable("currentPage") Integer currentPage, Model model){
     if(currentPage!= null){
         PageHelper.startPage(currentPage, 10);
     }
     List<Message> messages = messageService.list();
     model.addAttribute("messages", messages);
     return "message";
 }

OK,完事。关于

关于分页插件的其他参数详细说明, 去文档上找哈。

最后的最后,在呼吁一下:
图片描述

下一节准备整理:整合log4j/logback和aop,实现简单的日志记录

晚安。。。

Github源码 - SpringBoot多模块项目

我可以对一个人无限的好,前提是值得。 ——慕冬雪

点击查看更多内容
22人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消