背景:
druid版本:1.1.10;
springboot版本:2.2.5 RELEASE
坑一:
報錯:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2.2.x版本下的Springboot已經不支持 “com.mysql.jdbc.Driver”這個驅動了,這個驅動是對應MySql 5.5.x版本的;需要換上MySql 5.6.x版本的驅動,即:“com.mysql.cj.jdbc.Driver”,因此,我們只需要修改一下配置文件,換一個驅動,然後設置一下時區(5.6.x版本不設置時區會報錯)
參考配置(yml格式):
# druid
spring:
datasource: # 數據庫源配置
url: jdbc:mysql://127.0.0.1:3306/honeynet?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource # 數據庫連接源類型
tomcat: # tomcat 數據庫連接配置
max-active: 1000 # 數據庫最大連接數
initial-size: 100 # 數據庫初始連接數
max-wait: 60000 # 配置獲取連接等待超時的時間
min-idle: 150 # 需要維護的最小空閒連接數目
time-between-eviction-runs-millis: 60000 # 間隔多久檢測一次空閒連接數目
min-evictable-idle-time-millis: 300000 # 每條數據庫連接最小生存時間
test-on-borrow: false # 指明是否在從池中取出連接前進行檢驗,如果檢驗失敗, 則從池中去除連接並嘗試取出另一個,注意: 設置爲true後如果要生效,validation-query參數必須設置爲非空字符串
test-while-idle: false # 指明連接是否被空閒連接回收器(如果有)進行檢驗.如果檢測失敗,則連接將被從池中去除.注意: 設置爲true後如果要生效,validation-query參數必須設置爲非空字符串
test-on-return: false # 指明是否在歸還到池中前進行檢驗,注意: 設置爲true後如果要生效, validation-query參數必須設置爲非空字符串
validation-query: select 1 # SQL查詢,用來驗證從連接池取出的連接,在將連接返回給調用者之前.如果指定,則查詢必須是一個SQL SELECT並且必須返回至少一行記錄
num-tests-per-eviction-run: 3 # 在每次空閒連接回收器線程(如果有)運行時檢查的連接數量,默認值就是3.
坑二:
使用mybatis時,給dao層接口打註解的時候@MapperScan和@Mapper一個即可,前者能同時指定多個mapper文件;
並且寫SQL的時候,推薦xml文件和註解一起用,簡單的SQL用註解,複雜的SQL用xml,這樣可讀性強。
參考配置(yml格式):
mybatis:
type-aliases-package: com.xxx.xxx
configuration:
map-underscore-to-camel-case: true
default-fetch-size: 100
default-statement-timeout: 3000
mapper-locations: classpath:/mapper/*.xml
坑三:
報錯:com.alibaba.druid.pool.DruidDataSource : testWhileIdle is true, validationQuery not set.....
解決方案:需要添加和修改某些配置項 (https://blog.csdn.net/HXNLYW/article/details/86672024)