SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(); Connection connection = sqlSession.getConnection(); 连接池中连接的最大存活时间
时间: 2023-11-03 13:19:04 浏览: 84
通过 `SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession();` 这行代码获取到的 `SqlSession` 对象是由 `SqlSessionFactory` 创建的,而 `SqlSessionFactory` 使用的是连接池来管理连接。因此,连接池中连接的最大存活时间是通过 `dataSource` 的 `poolMaximumCheckoutTime` 属性来设置的。
在 MyBatis 中,连接池的相关配置可以在配置文件中的 `<dataSource>` 标签中进行设置。例如:
```xml
<dataSource type="POOLED">
<property name="driver" value="${driverClassName}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="poolMaximumActiveConnections" value="50"/>
<property name="poolMaximumIdleConnections" value="10"/>
<property name="poolMaximumCheckoutTime" value="20000"/>
<property name="poolTimeToWait" value="20000"/>
</dataSource>
```
在上面的配置中,`poolMaximumCheckoutTime` 属性设置了连接池中连接的最大存活时间为 20000 毫秒(即 20 秒)。这意味着,如果一个连接在连接池中的存活时间超过 20 秒,那么它就会被关闭并从连接池中移除。当然,如果这个连接正在被使用,那么它的存活时间会被重置,直到它被释放为止。
阅读全文