springboot-集成MySQL+druid+mybatis-plus总结

2,807 阅读3分钟

springboot-集成MySQL+druid+mybatis-plus总结 

目录

springboot-集成MySQL+druid+mybatis-plus总结 

一、摘要:

编写本文的目的

基本jar包依赖引入

配置总结

二、正文

    1.目的:

    2.jar包引入 

    3.基本配置

    4.集成分页插件 



一、摘要:

  1. 编写本文的目的

  2. 基本jar包依赖引入

  3. 配置总结

二、正文

    1.目的:

   带领一个新团队从0-1做一个项目,以springboot为核心来搭建架构。在制定规范的过程中我发现大家在使用过程比较乱,怎么写的都有,借此机会写一个规范总结。

    2.jar包引入 

<!--spring-boot-web依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql驱动依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!--mybatis-plus依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>
<!--druid数据库连接池依赖-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>

总结:

  • 由于引入的是druid-spring-boot-starter,会自动添加druid的依赖,所以并不需要单独再额外引入。
  • 这不是唯一方法,这样用是为简化pom文件,以最小的配置干最大的事,也是了后面配置文件风格的统一,一句话就是做一个团队规范。
  • 也可以给码友们一个参考,不在云里雾里。

    3.基本配置

#服务端口
server.port=8888

#JDBC基本配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/amsds_fifa?&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#连接池补充配置
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=10

总结:

  • driver-class使用cj.jdbc.Driver,配置url时要带上时区参数****serverTimezone 。cj是mysql6以后的驱动,这里需要注意下MySQL驱动的版本。
  • 对应依赖的引入,在配置文件中可以统一成spring.datasource.druid.*风格,这样在转yml的格式时在一个层级
  • 另外在集成他技术的时候,推荐跟springboot配套的starter** ,这样可以做到代码风格和技术的统一,不推荐单独引入。**

    4.集成分页插件 

@Configuration
public class MybatisPlusConfiguration {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //声明插件拦截器
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //声明分页插件
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        //添加到插件拦截器中
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        return mybatisPlusInterceptor;
    }

}

总结:

  • 首先吐槽mybatis-plus的代码中没有Javadoc,其次文档说的不明确,新老版本变化也没有明确说明,这样会造成开发者容易入坑。
  • 老的废除的方法PaginationInterceptor可以直接按文档可以使用,但是高版本废弃了。
  • 分页的原理还是依赖limit,这样的分页还是有问题的,容易丢数据