springboot整合各种数据访问总结及原理

首先我们需要导入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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值