在 MyBatis 中,你可以通过两种方式设置事务的超时时间:
<setting name="defaultStatementTimeout" value="30"/>
</settings>
这里的值是以秒为单位的。上面的例子将全局事务超时时间设置为 30 秒。
SqlSessionFactory sqlSessionFactory = ...; // 获取 SqlSessionFactory 实例
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.getConfiguration().setDefaultStatementTimeout(30);
这里的值同样是以秒为单位的。上面的例子将特定 SqlSession 的事务超时时间设置为 30 秒。
注意:这两种方法设置的超时时间是不同的。全局事务超时时间适用于所有 SqlSession,而特定 SqlSession 的事务超时时间仅适用于该 SqlSession。如果同时设置了全局和特定的事务超时时间,特定的事务超时时间将覆盖全局事务超时时间。