在 MyBatis 中,你可以通過兩種方式設置事務的超時時間:
<setting name="defaultStatementTimeout" value="30"/>
</settings>
這里的值是以秒為單位的。上面的例子將全局事務超時時間設置為 30 秒。
SqlSessionFactory sqlSessionFactory = ...; // 獲取 SqlSessionFactory 實例
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.getConfiguration().setDefaultStatementTimeout(30);
這里的值同樣是以秒為單位的。上面的例子將特定 SqlSession 的事務超時時間設置為 30 秒。
注意:這兩種方法設置的超時時間是不同的。全局事務超時時間適用于所有 SqlSession,而特定 SqlSession 的事務超時時間僅適用于該 SqlSession。如果同時設置了全局和特定的事務超時時間,特定的事務超時時間將覆蓋全局事務超時時間。