我是靠谱客的博主 坦率百合,最近开发中收集的这篇文章主要介绍spring boot yml整合pagehelper的几种方式和问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这是一个简单的SpringBoot整合实例
利用spring boot整合pagehelper实现分页功能
会介绍两种种整合方式(主要讲方式,完整代码在其他地方可以看到,我这里只贴出关键代码) 以及里面需要注意的问题
1:完全采用配置(重点介绍)
2:配置+代码configuration
3:完全代码实现
1:完全采用配置整合pagehelper

首先是pom.xml ,加入相应的依赖


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- Spring Boot 启动父依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>

    <groupId>com.mes.cloud</groupId>
    <artifactId>mes-cloud-starter</artifactId>
    <package>jar</package>
    <properties>
        <java.version>1.8</java.version>
    </properties>

    <version>1.0-SNAPSHOT</version>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
             <!-- Spring Boot Web 依赖 -->
            <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- Spring Boot Mybatis 依赖 -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.1</version>
            </dependency>
            <!-- 分页插件 -->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>5.1.0</version>
            </dependency>
            <!-- springboot对mybatis的整合支持还是比较苛刻的,版本不兼容问题比较严重,pageHelper分页插件也是一样,不是最新的版本就没有问题,有时需要降低版本进行支持,这里的版本是调试通过可以用的版本,其他应该还有可以匹配的版本,但是没有去测试 --> 
            <!-- spring boot pagehelper autoconfigure依赖 版本有兼容性问题 第一种方式依赖的包-->  
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
                <version>1.1.1</version>
            </dependency>
            <!-- spring boot 整合pagehelper依赖 版本有兼容性问题 第一种方式依赖的包-->  
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.3</version>
            </dependency>
        </dependencies>
</project>

接着在src/main/resources目录下新建一个application.yml文件

#mybatis配置 第一种和第二种需要 第三种不需要
mybatis:
  #mapper.xml文件位置
  mapper-locations: classpath*:mapper/*.xml
  check-config-location: true
  #对应mapper的实体类
  type-aliases-package: com.mes.cloud.**.dto

#pagehelper分页配置 第二种和第三种不需要 重点讲的第一种需要
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql

下面是启动的入口代码,跟其他的启动没有区别

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * Created by pact on 2018/1/24.
 */
@SpringBootApplication
public class CcsApplication {

    private static final Logger LOGGER = LoggerFactory.getLogger(CcsApplication.class);

    public static void main(String[] args) throws UnknownHostException {
        SpringApplication app = new SpringApplication(CcsApplication.class);
        Environment env = app.run(args).getEnvironment();
        LOGGER.info("n----------------------------------------------------------nt" +
                        "Application '{}' is running! Access URLs:nt" +
                        "Local: tthttp://localhost:{}nt" +
                        "External: thttp://{}:{}nt" +
                        "Profile(s): t{}n----------------------------------------------------------",
                env.getProperty("spring.application.name"),
                env.getProperty("server.port"),
                InetAddress.getLocalHost().getHostAddress(),
                env.getProperty("server.port"),
                env.getActiveProfiles());
    }
}

启动以后就完成pagehelper的整合了:
2:完全代码实现

import java.util.Properties;

import org.apache.ibatis.plugin.Interceptor;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import com.github.pagehelper.PageHelper;

import javax.sql.DataSource;

/**
 *  Created by pact on 2018/1/24
 */

@Configuration
@ComponentScan
public class MyBatisConfig {

    @Autowired
    private DataSource dataSource;
    /**
     *  第三种方式 代码中指定xml和实体类的对应关系
    */
    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactoryBean sqlSessionFactory(ApplicationContext applicationContext) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        // sessionFactory.setPlugins(new Interceptor[]{new PageInterceptor()});
        sessionFactory.setMapperLocations(applicationContext.getResources("classpath*:mapper/*.xml"));
        org.apache.ibatis.session.Configuration configuration =  sessionFactory.getObject().getConfiguration();
        configuration.setMapUnderscoreToCamelCase(true);
        sessionFactory.setConfiguration(configuration);
        Interceptor[] interceptor =new PageHelper[1];
        interceptor[0] = pageHelper();
        sessionFactory.setPlugins(interceptor);
        return sessionFactory;
    }
    /**
     *  第二种方式 在代码中指定pagehelper的配置
    */
    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        p.setProperty("dialect", "mysql"); // 配置mysql数据库
        pageHelper.setProperties(p);
        return pageHelper;
    }

}

其实整合pagehelper很简单,但是采用第一种方式的时候一定要特别注意依赖jar包的兼容性问题,不然会包很奇怪的问题,第二种和第三种就不存在这个问题。

最后

以上就是坦率百合为你收集整理的spring boot yml整合pagehelper的几种方式和问题的全部内容,希望文章能够帮你解决spring boot yml整合pagehelper的几种方式和问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部