springboot连接mysql数据库_spring boot连接mysql数据库

一、现在大部分持久化层ORM实现框架用的都是mybatis,spring Boot开始使用之后,mybatis官网也发布了mybatis-spring-boot-starter包来支持springboot集成开发,在jdbc连接数据库的spring-boot-starter-jdbc包中,mybatis默认选择了引入第三方数据库连接池工具HiKariCp

这样做应该是考虑到Hikari是目前公认的连接性能最强的连接池工具。

二、如果不单单考虑性能,按综合能力考量 ,阿里的Druid其实是功能最强大的数据库连接池工具。当然,阿里也为我们提供了支持springboot开发的starter包Druid-spring-boot-starter。

我个人比较偏向集成Druid做数据库连接池工作,虽然需要单独引入Druid的starter包,但是他的监控功能确实做的很好。

三、下面来具体分析下

1、首先分析下Hikari和Druid

总结来说,Hikari速度快,Druid功能强

2、具体使用:

如果使用mybatis的默认连接池Hikari,只需要引入pom依赖和配置application.properties文件如下:

#spring.datasource.driver-class-name:com.mysql.cj.jdbc.Driver

#mybaits扫描设置

mybatis.config-location=classpath:config/mybatis-config.xml

mybatis.mapper-locations=classpath*:dbmapper/*.xml

# 解析结果集对应的model路径,当然,如果在mapper.xml中写全限定名就不用配置这里

# mybatis.type-aliases-package=com.example.mybatisdemo.db.model

# mybatis.configuration.mapped-statements=com.example.mybatisdemo.db.dao

#数据连接设置

spring.datasource.url:jdbc:mysql://192.*.100.29:3306/testdb?useUnicode=true&characterEncoding=utf-8

spring.datasource.username:root

spring.datasource.password:root

1.8

1.3.1

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-maven-plugin

org.mybatis.generator

mybatis-generator-maven-plugin

${plugin.mybatis.generator}

src/main/resources/config/generatorConfig.xml

true

true

如果使用mybatis外接连接池Druid,则需要配置如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#spring.datasource.driver-class-name:com.mysql.cj.jdbc.Driver

#mybaits扫描设置

mybatis.config-location=classpath:config/mybatis-config.xml

mybatis.mapper-locations=classpath*:dbmapper/*.xml

#数据连接设置

server.port=8080

spring.application.name=springboot-test-exam1

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url:jdbc:mysql://192.*.*.29:3306/testdb?useUnicode=true&characterEncoding=utf-8

spring.datasource.username:root

spring.datasource.password:root

spring.datasource.druid.initial-size=5

spring.datasource.druid.min-idle=5

spring.datasource.druid.maxActive=20

spring.datasource.druid.maxWait=60000

spring.datasource.druid.timeBetweenEvictionRunsMillis=60000

spring.datasource.druid.minEvictableIdleTimeMillis=300000

spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL

spring.datasource.druid.testWhileIdle=true

spring.datasource.druid.testOnBorrow=false

spring.datasource.druid.testOnReturn=false

spring.datasource.druid.poolPreparedStatements=true

spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20

spring.datasource.druid.filters=stat,wall,slf4j

spring.datasource.druid.connectionProperties=druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000

spring.datasource.druid.web-stat-filter.enabled=true

spring.datasource.druid.web-stat-filter.url-pattern=/*

spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*

spring.datasource.druid.stat-view-servlet.enabled=true

spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*

spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,192.168.163.1

spring.datasource.druid.stat-view-servlet.deny=192.168.1.73

spring.datasource.druid.stat-view-servlet.reset-enable=false

spring.datasource.druid.stat-view-servlet.login-username=admin

spring.datasource.druid.stat-view-servlet.login-password=123456

Druid配置

1.8

1.3.1

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

runtime

com.alibaba

druid-spring-boot-starter

1.1.10

org.springframework.boot

spring-boot-maven-plugin

org.mybatis.generator

mybatis-generator-maven-plugin

${plugin.mybatis.generator}

src/main/resources/config/generatorConfig.xml

true

true

3、源码底层分析

通过配置错误的数据库连接信息会发现

1)、项目启动过程中,Druid在初始化Datasource时会对数据库进行测试连接而Hikari并没有。

2)、两者都是在解析完sql之后进行的数据库连接,如果解析错误,则不进行数据库连接。

我写的一篇浅跟mybaits中使用的连接池就是Druid

下面在来简单看看Hikari的源码跟踪:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值