存在这样的场景,当一些比较耗时的查询时,如果不中断,则会导致数据库堵塞,进而会拖垮整个数据库服务的正常运行。

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,就会断开操作了,起到保护数据库服务的作用。

查看了一下耗时点,在 mybatis 执行 到DruidDa ta S ou rce.getConnect方法之间耗时很久(100s左右)。 猜测:连接池问题,全部被占用,在等待连接? 查看了下getConnec ti ... & lt ;select id="getXXXX" parame te rType="java.lang. St ring" res ul tMap="da ta Map" timeout ="1">
开始搭建项目框架的时候,忽略了 sql 执行 超时 时间 的问题. 原本使用.net开发是,默认的 超时 时间 是30s,这个 时间 一般一般 sql 是用不到的,但也不排除一些比较复杂或数据量较大的 sql . 而java中,如果不指定,默认 超时 时间 是不做限制的,默认值为0. 由于我们的项目采用 Mybatis 进行数据库操作,经过查看 Myb aits相关文档,配置 sql 超时 时间 有两种方法 1 全局配置 在 mybatis
1.在使用java编程过程中,如果要将数据库持久化,我们可以选择 my sql ,oracle,ms sql 等存储系统。这里我们选择 my sql 。 2.java要操作 my sql 数据库,在不使用其他框架的情况下,非常简单。   2.1.首先需要引入 my sql 官方提供的 my sql -connector-java.jar包。   2.2.提供数据库服务的url、user、password即可。 简单的操作...
public class Main2 { // 定义线程池,推荐手动创建线程池: https://blog.csdn.net/LLLLLiSHI/ar ti cle/ de ta ils/88057655 priv ate stat ic Exec...
1.spring boot pom.xml清单中的spring-boot-maven-plugin已经包含了我们需简要打包的插件。& lt ;build&gt; & lt ;plugins&gt; & lt ;plugin&gt; & lt ;gr ou pId&gt;org.springframework.boot& lt ;/gr ou pId&gt...
origamiii: 这个个人开发倒是没啥问题,如果是团队开发,一般不建议勾选这个,你勾了 你同事没勾,他拉取到的就是ascii码的配置文件(百分百要被屌~);;因为你在idea里看到的是中文,但是你本地磁盘记录的仍然是ascii码(不信的话 你可以进入这个目录 打开这个文件看看你本地的文件长啥样)。 我个人解决办法是:勾选一下 让properties变成中文,然后用记事本打开配置文件全部替换中文后,再把勾去掉,这样解决了你properties本地乱码问题,也解决了你同事拉取后的问题。 IDEA 中配置文件properties文件中文乱码解决 Deep Learning小舟: 文章很赞,博主辛苦了!( ̄ˇ ̄) IDEA 中配置文件properties文件中文乱码解决 落后就要挨打: Transparent native-to-ascii conversion 在哪里呀,大佬