首页 Spring Boot学习记录(三)
文章
取消

Spring Boot学习记录(三)

Spring Boot 集成 Mybatis

​ Spring Boot 集成Mybatis非常的简单,如果是新工程,在使用https://start.spring.io/官网创建,或者 IDEA创建新工程项目的时候直接勾选Mybatis就可以了:

当然,如果我们在创建了忘记了勾选这一项想要集成也非常的简单,直接在pom.xml文件中导入一下依赖就可以了:

1
2
3
4
5
6
7
8
9
10
11
  
<dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.0.1</version>
  </dependency>

  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
  </dependency>

org.mybatis.spring.boot是 Spring Boot 的官方依赖包,导入它Spring Boot 会自动帮你导入其他相关依赖,mysql-connector-java是 mysql的驱动程序。

配置数据库

application.properties文件中配置数据库信息

1
2
3
4
5
6
7
8
9
10
spring.datasource.druid.url = jdbc:mysql://localhost:3306/acgpicture?useUnicode=true&characterEncoding=utf-8
# 数据库账号
spring.datasource.druid.username = root 
# 数据库密码
spring.datasource.druid.password = 123456
# 数据库驱动
spring.datasource.druid.driver-class-name = com.mysql.cj.jdbc.Driver

#MyBatis 设置mapper路径
mybatis.mapper-locations=classpath:/mybatis-mappers/*

这样就可以连接上数据库了。

配置druid连接池

Druid是一个JDBC组件,它包括三部分

  • DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
  • DruidDataSource 高效可管理的数据库连接池。
  • SQLParser

在项目工程中我们主要使用阿里的druid作为连接池用于提升服务器性能,druid的集成方法也很简单,在pom.xml文件中导入以下依赖:

1
2
3
4
5
 <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.10</version>
  </dependency>

等 IDEA 自动安装好以后我们还需要在application.properties 文件中对它进行一些配置就可以使用了,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 初始化时建立物理连接的个数
spring.datasource.druid.initial-size=5
# 最大连接池数量
spring.datasource.druid.max-active=30
# 最小连接池数量
spring.datasource.druid.min-idle=5
# 获取连接时最大等待时间,单位毫秒
spring.datasource.druid.max-wait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 连接保持空闲而不被驱逐的最小时间
spring.datasource.druid.min-evictable-idle-time-millis=300000
# 用来检测连接是否有效的sql,要求是一个查询语句
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
# 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
spring.datasource.druid.test-while-idle=true
# 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
spring.datasource.druid.test-on-borrow=false
# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
spring.datasource.druid.test-on-return=false
# 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
spring.datasource.druid.pool-prepared-statements=true
# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计
spring.datasource.druid.filters=stat,wall
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
# 合并多个DruidDataSource的监控数据
spring.datasource.druid.use-global-data-source-stat=true

# druid连接池监控
spring.datasource.druid.stat-view-servlet.login-username=xxx@gmail.com
spring.datasource.druid.stat-view-servlet.login-password=156****2333
# 排除一些静态资源,以提高效率
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
本文由作者按照 CC BY 4.0 进行授权