mybatis設(shè)置sql執(zhí)行時(shí)間超時(shí)時(shí)間的方法
存在這樣的場(chǎng)景,當(dāng)一些比較耗時(shí)的查詢時(shí),如果不中斷,則會(huì)導(dǎo)致數(shù)據(jù)庫(kù)堵塞,進(jìn)而會(huì)拖垮整個(gè)數(shù)據(jù)庫(kù)服務(wù)的正常運(yùn)行。
1.如果你使用的是HikariCP連接池的話,可以在配置文件設(shè)置connetion-timeout這個(gè)屬性(如application.properties)
2.如果你使用的是其他鏈接池,比如tomcat連接池,同時(shí)持久化框架用的是mybatis的話,那可以這樣設(shè)置
2.1 在配置文件中設(shè)置全局的sql執(zhí)行超時(shí)時(shí)間(單位s):
mybatis.configuration.default-statement-timeout = 1
如果想把粒度更細(xì),比如粒度到某個(gè)sql的話,可以在select/insert/update/delete 操作語(yǔ)句中設(shè)置 timeout值(單位s)
<select id="getXXXX" parameterType="java.lang.String" resultMap="dataMap" timeout="1"> ? </select>
當(dāng)sql執(zhí)行時(shí)間超過(guò)1s,就會(huì)斷開(kāi)操作了,起到保護(hù)數(shù)據(jù)庫(kù)服務(wù)的作用。
Mapper XML配置
還有一種方法是在mapper xml文件中對(duì)具體一個(gè)sql進(jìn)行設(shè)置,方法為在select/update/insert節(jié)點(diǎn)中配置timeout屬性,依然是以秒為單位表示超時(shí)時(shí)間并只作用于這一個(gè)sql.
<insert ? id="insertAuthor" ? parameterType="domain.blog.Author" ? flushCache="true" ? statementType="PREPARED" ? keyProperty="" ? keyColumn="" ? useGeneratedKeys="" ? timeout="20">
到此這篇關(guān)于mybatis設(shè)置sql執(zhí)行時(shí)間超時(shí)時(shí)間的方法的文章就介紹到這了,更多相關(guān)mybatis設(shè)置sql執(zhí)行時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解MyBatis直接執(zhí)行SQL查詢及數(shù)據(jù)批量插入
- MyBatis 執(zhí)行動(dòng)態(tài) SQL語(yǔ)句詳解
- MyBatis一次執(zhí)行多條SQL語(yǔ)句的操作
- MyBatis執(zhí)行動(dòng)態(tài)SQL的方法
- MyBatis直接執(zhí)行SQL的工具SqlMapper
- Mybatis如何直接執(zhí)行SQL語(yǔ)句
- SpringBoot如何打印mybatis的執(zhí)行sql問(wèn)題
- 在mybatis執(zhí)行SQL語(yǔ)句之前進(jìn)行攔擊處理實(shí)例
- MyBatis SQL執(zhí)行流程的使用詳解
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)-HashMap詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)-HashMap,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Java8中orElse orElseGet orElseThrow的使用舉例
這篇文章主要介紹了Java8中orElse orElseGet orElseThrow的使用舉例,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-09-09
Java Web 簡(jiǎn)單的分頁(yè)顯示實(shí)例代碼
這篇文章主要介紹了Java Web 簡(jiǎn)單的分頁(yè)顯示實(shí)例代碼的相關(guān)資料,本文通過(guò),計(jì)算總的頁(yè)數(shù)和查詢指定頁(yè)數(shù)據(jù)兩個(gè)方法實(shí)現(xiàn)分頁(yè)效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
SpringBoot快速實(shí)現(xiàn)接口消息加密的過(guò)程詳解
在項(xiàng)目中,為了保證數(shù)據(jù)的安全,我們常常會(huì)對(duì)傳遞的數(shù)據(jù)進(jìn)行加密,常用的加密算法包括對(duì)稱加密(AES)和非對(duì)稱加密(RSA),博主選取碼云上最簡(jiǎn)單的API加密項(xiàng)目進(jìn)行下面的講解,需要的朋友可以參考下2023-11-11
Java設(shè)計(jì)模式初識(shí)之備忘錄模式詳解
備忘錄設(shè)計(jì)模式(Memento Design Pattern)也叫作快照(Snapshot)模式,主要用于實(shí)現(xiàn)防丟失、撤銷、恢復(fù)等功能。本文將通過(guò)示例為大家介紹一些備忘錄模式的定義與使用,需要的可以參考一下2022-11-11

