导入的黑马旅游网的项目

  • 内部的mysql版本是5.xxx,
  • 一直报错但是查也查不出来(因为错误样式很多类似,获取不到连接,data init error)
  • 我寄希望于mysql的版本,于是将pom文件的mysql版本更改为8.0.16
  • 更改durid的资源文件
  • 就莫名其妙的好了
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/travel?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
username=root
password=123456

initialSize=5
maxActive=10
maxWait=3000

更改mysql版本之后

  • 出现新错误,此时durid的版本1.0.9
严重: testWhileIdle is true, validationQuery not set


- 参考于https://blog.csdn.net/weixin_42323802/article/details/82726267
8月 18, 2021 3:40:40 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info
信息: {dataSource-1} inited

原因

  • 因为没有SpringBoot框架xml配置,在不使用框架的情况下(转载)
    • 严重: testWhileIdle is true, validationQuery not set
      • 在durid的资源文件添加
      	filters=stat
      	timeBetweenEvictionRunsMillis=60000
      	minEvictableIdleTimeMillis=300000
      	validationQuery=SELECT 1
      	testWhileIdle=true
      	testOnBorrow=false
      	testOnReturn=false
      	poolPreparedStatements=false
      	maxPoolPreparedStatementPerConnectionSize=200
      
    • 信息: {dataSource-1} inited
      • 虽然是红字但并不是错误
      • Druid采用了日志打印机制,这不是报错;连接池采用了懒加载,真正用到的时候才初始化;

durid新增资源名词解释

validationQuery = SELECT 1  验证连接是否可用,使用的SQL语句

testWhileIdle = true     指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除.

testOnBorrow = false   借出连接时不要测试,否则很影响性能

timeBetweenEvictionRunsMillis = 30000  每30秒运行一次空闲连接回收器

minEvictableIdleTimeMillis = 1800000  池中的连接空闲30分钟后被回收,默认值就是30分钟。

numTestsPerEvictionRun= 3 在每次空闲连接回收器线程(如果有)运行时检查的连接数量,默认值就是3.

参考于此[https://blog.csdn.net/weixin_42323802/article/details/82726267]