springboot-集成MySQL+druid+mybatis-plus总结
目录
springboot-集成MySQL+druid+mybatis-plus总结
一、摘要:
-
编写本文的目的
-
基本jar包依赖引入
-
配置总结
二、正文
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,这样的分页还是有问题的,容易丢数据
最后,欢迎大家关注我的个人公众号,我会把经历分享出来,助你了解圈内圈外事。
同时也欢迎大家添加个人微信【shishuai860505】,我拉大家进我的读者交流群。