SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper

       上篇文章我们介绍了SpringBoot和MyBatis的整合,可以说非常简单快捷的就搭建了一个web项目,但是在一个真正的企业级项目中,可能我们还需要更多的更加完善的框架才能开始真正的开发,比如连接池、分页插件等。下面我们就来看看在SpringBoot中怎么快速的集成这些东西。

一、新建一个项目,引入相关依赖,加粗的是本项目中新引入的依赖

   
 
org.springframework.boot
spring-boot-starter-test

   
    
   
        org.springframework.boot
        spring-boot-starter-web
   

    
   
    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    1.3.1
   

    
   
   
       com.alibaba
       druid
       1.1.8
   

   
    
   
   
        mysql
        mysql-connector-java
   

   
    
   
   
  com.github.pagehelper
  pagehelper
  5.1.2
   

   

二、为了项目配置的整洁性,在SpringBoot-mybatis的项目基础上,我将数据库和MyBatis的相关操作进行了统一配置,使得配置根据清晰简单,项目结构如下

SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper_第1张图片

后期项目会将所有的配置放在configuration包下,具体数据库配置如下

@Configuration
@MapperScan(value = "com.somta.springboot.dao")
public class MyBatisConfiguration {

    @Value("${spring.datasource.driver-class-name}")
    private String driverClassName;

    @Value("${spring.datasource.url}")
    private String url;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Bean
    public DruidDataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(this.driverClassName);
        dataSource.setUrl(this.url);
        dataSource.setUsername(this.username);
        dataSource.setPassword(this.password);

        dataSource.setInitialSize(5);
        dataSource.setMaxActive(30);
        dataSource.setMinIdle(5);
        dataSource.setMaxWait(60000);
        return dataSource;
    }

    @Bean(name="sqlSessionFactory")
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws IOException {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
        sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/**/Mysql_*Mapper.xml"));
        return sqlSessionFactoryBean;
    }
}

1、将Dao层扫描和MyBatis文件的扫描统一放在配置文件中,如上文中的加粗项

2、使用了阿里开源的Druid连接池,SpringBoot默认使用的连接池是Hikari,两者之间的优缺点后续将会单独介绍,配置成功后启动项目,我们可以看到项目当前使用的是那种连接池,如下图:

SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper_第2张图片

3、在src/main/resources下面新增了一个mybatis-config文件,该文件配置了MyBatis与数据库的相关信息,和PageHelper的相关配置,注意:(在不同的PageHelper版本中PageHelper的拦截器发生了变化,PageHelper-4.1.1中使用的是com.github.pagehelper.PageHelper,在PageHelper-5.1.2中使用的拦截器是com.github.pagehelper.PageInterceptor,具体小版本以官网公告为准)


        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

   
       
   

   
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
          
          
   

   
       
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
       

   

三、PageHelper的使用方法,PageHelper.startPage(pageNum, pageSize)只作用离它最近的一个查询,更多与分页相关的信息我们都可以在page对象中拿到,完全可以满足各种情况下的分页查询。

        @Test
public void testQueryUserList() throws Exception {
int pageNum=1;
int pageSize=10;
Page page = PageHelper.startPage(pageNum, pageSize);
userDao.queryUserList();
System.out.println("总共条数:"+page.getTotal());
for (User user : page.getResult()) {
System.out.println(user.getName());
}

}

看到如图所示的输出表示分页插件配置成功了

SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper_第3张图片

 

 

Git代码地址:https://gitee.com/Somta/SpringBoot/tree/master/SpringBoot-mybatis-expand

原文地址:http://somta.com.cn/#/blog/view/ef507e4e6e28434d9787ec715d406491

本文由明天的地平线创作,如想了解更多更详细的内容,请关注一下公众号,公众号内将进行最新最实时的更新!

                                                         SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper_第4张图片

 

 

 

 

 

 

你可能感兴趣的:(SpringBoot2.0系列)