首先我们需要导入web和测试基础依赖包 Mysql驱动包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
在整合数据访问之前我们先需要一个数据源
如果我们在yml或者properties中不配置数据源 springboot会有一个默认的数据源 在数据源自动配置类DataSourceConfiguration中可以看到springboot自己支持的多种数据源:
org.apache.tomcat.jdbc.pool.DataSource
org.apache.tomcat.jdbc.pool.HikariDataSource
org.apache.tomcat.jdbc.pool.BasicDataSource
上面的代码中的这2个注解中
@ConditionalOnClass 判断当前项目有没有这个类
@ConditionalOnProperty
判断配置文件中是否存在某个配置 spring.datasource.type;
这里注意如果我们想自己配置数据源 就需要配置这个属性
即使我们配置文件中不配置因为matchIfMissing=true,也是默认生效的;
@ConditionalOnClass(org.apache.tomcat.jdbc.pool.DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "org.apache.tomcat.jdbc.pool.DataSource", matchIfMissing = true)
在上面的图片中我们可以看我选择的springboot2.0.1版本 默认数据源为HikariDataSource。
然而在开发中我们常常选择Durid数据源 它属于阿里巴巴旗下的一款数据源
业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分析功能,所以这也是大家都选择使用它的原因。
接下来我们看看怎么配置Durid 首先需要在maven导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
接着 在配置文件中配置属性spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
和其他相关属性
数据库访问配置
# 主数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/jy
spring.datasource.username=root
spring.datasource.password=123
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPr