mybatis设置sql执行时间超时时间的方法
存在这样的场景,当一些比较耗时的查询时,如果不中断,则会导致数据库堵塞,进而会拖垮整个数据库服务的正常运行。
1.如果你使用的是HikariCP连接池的话,可以在配置文件设置connetion-timeout这个属性(如application.properties)
2.如果你使用的是其他链接池,比如tomcat连接池,同时持久化框架用的是mybatis的话,那可以这样设置
2.1 在配置文件中设置全局的sql执行超时时间(单位s):
mybatis.configuration.default-statement-timeout = 1
如果想把粒度更细,比如粒度到某个sql的话,可以在select/insert/update/delete 操作语句中设置 timeout值(单位s)
<select id="getXXXX" parameterType="java.lang.String" resultMap="dataMap" timeout="1"> </select>
当sql执行时间超过1s,就会断开操作了,起到保护数据库服务的作用。
Mapper XML配置
还有一种方法是在mapper xml文件中对具体一个sql进行设置,方法为在select/update/insert节点中配置timeout属性,依然是以秒为单位表示超时时间并只作用于这一个sql.
<insert id="insertAuthor" parameterType="domain.blog.Author" flushCache="true" statementType="PREPARED" keyProperty="" keyColumn="" useGeneratedKeys="" timeout="20">
到此这篇关于mybatis设置sql执行时间超时时间的方法的文章就介绍到这了,更多相关mybatis设置sql执行时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java中BigDecimal的舍入模式解析(RoundingMode)
这篇文章主要介绍了Java中BigDecimal的舍入模式解析(RoundingMode),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06
SpringBoot读取properties文件配置项过程解析
这篇文章主要介绍了SpringBoot读取properties文件配置项过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-06-06
SpringMVC整合SpringSession 实现sessiong
这篇文章主要介绍了SpringMVC整合SpringSession 实现session的实例代码,本文通过实例相结合的形式给大家介绍的非常详细,需要的朋友参考下吧2018-04-04
IDEA中springboot的热加载thymeleaf静态html页面的方法
这篇文章主要介绍了IDEA中springboot的热加载thymeleaf静态html页面的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-07-07
mybatis如何使用Criteria的and和or进行联合查询
这篇文章主要介绍了mybatis如何使用Criteria的and和or进行联合查询,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12


最新评论