配置項(xiàng):connectTimeout
- 名稱:創(chuàng)建連接超時(shí)
- 作用域:連接池初始化時(shí)恐似,或連接池?zé)o連接咨演,需要?jiǎng)?chuàng)建物理連接時(shí)
- 配置方法:在jdbc url中配置 connectTimeout,屬于JDBC 驅(qū)動(dòng)的參數(shù)端三,單位ms
- 默認(rèn)值:無(wú)
- 樣例:jdbc:mysql://xxx.xx.xx.xxx:3306/xxx?connectTimeout=1000
- 其他說(shuō)明:這里是操作系統(tǒng)層建立socket連接的超時(shí)
配置項(xiàng):socketTimeout
- 名稱:與數(shù)據(jù)庫(kù)socket通訊超時(shí)
- 作用域:從網(wǎng)絡(luò)連接中讀取數(shù)據(jù)時(shí)
- 配置方法:在jdbc url中配置 socketTimeout酌媒,屬于JDBC 驅(qū)動(dòng)的參數(shù)單位ms
- 默認(rèn)值:無(wú)
- 樣例:jdbc:mysql://xxx.xx.xx.xxx:3306/xxx?socketTimeout=60000
- 其他說(shuō)明:socketTimeout 的值必須最大,否則 連接池 或 Statement 的設(shè)置無(wú)效蚊锹。
- 實(shí)際上Driver 執(zhí)行SQL的超時(shí)不受連接池 或 Statement的值影響
配置項(xiàng):loginTimeout
- 名稱:連接及登錄數(shù)據(jù)庫(kù)超時(shí)
- 作用域:創(chuàng)建數(shù)據(jù)庫(kù)連接或完成后,登錄數(shù)據(jù)庫(kù)時(shí)
- 配置方法:屬于JDBC 驅(qū)動(dòng)的參數(shù)稚瘾,在連接池中傳入單位s
- 默認(rèn)值:0
- 樣例:loginTimeout: 2
- 其他說(shuō)明:connectTimeout ==0||connectTimeout >loginTimeout, 連接超時(shí)取loginTimeout
配置項(xiàng):maxWait
- 名稱: 獲取連接等待時(shí)間
- 作用域:應(yīng)用操作SQL時(shí)牡昆,從dataSource中g(shù)etConnection()時(shí)。
- 配置方法:在數(shù)據(jù)源配置中設(shè)置maxWait摊欠,單位ms
- 默認(rèn)值:-1
- 樣例:maxWait: 2000
- 其他說(shuō)明:
配置項(xiàng):queryTimeout
- 名稱: 查詢SQL超時(shí)
- 作用域: 執(zhí)行查詢SQL時(shí)丢烘,設(shè)置的超時(shí)柱宦,需要根據(jù)SQL的復(fù)雜度設(shè)置超時(shí)值
- 配置方法:
- 1、在連接池中設(shè)置:queryTimeout播瞳,優(yōu)先級(jí) 3
- 2掸刊、在mybatis配置文件設(shè)置默認(rèn)值:defaultStatementTimeout優(yōu)先級(jí) 2
- 3、在mybatis mapper文件中對(duì)每一個(gè)sql方法設(shè)置timeout值 赢乓,優(yōu)先級(jí) 1
- 4忧侧、在JDBC Statement設(shè)置 setQueryTimeout ,優(yōu)先級(jí) 1
- 默認(rèn)值:無(wú)
- 樣例:queryTimeout: 30
- 其他說(shuō)明:
配置項(xiàng):transactionQueryTimeout
- 名稱:事務(wù)中操作SQL超時(shí)
- 作用域:執(zhí)行查詢SQL時(shí)骏全,這個(gè)是針對(duì)帶事務(wù)的SQL超時(shí)設(shè)置苍柏,這里的事務(wù)不是指寫(xiě)操作尼斧,實(shí)際上是指Connection是否自動(dòng)提交(是否有事務(wù))
- 配置方法:連接池中配置默認(rèn)值: transactionQueryTimeout 姜贡,單位s
- 默認(rèn)值:無(wú)
- 樣例:transactionQueryTimeout: 60
- 其他說(shuō)明:若未設(shè)置transactionQueryTimeout,則取queryTimeout的值