gpt4 book ai didi

java - 无法关闭与 MyBatis 的数据库连接

转载 作者:行者123 更新时间:2023-11-29 02:42:13 28 4
gpt4 key购买 nike

我在做什么:

我有一个 AWS Lambda,它是用 Kotlin (JVM) 编写的,它从队列中读取消息并在 MySQL 表中写入内容。

我为此目的使用 MyBatis,这是我在 Handler 中所做的一个简短的简化片段:

// initializing configuration
val dataSource = PooledDataSource(driver, url, username, password)
val environment = Environment(environmentName, JdbcTransactionFactory(), dataSource)
val configuration = Configuration(environment)

try {
val builder = SqlSessionFactoryBuilder()
val session = builder.build(configuration).openSession()
val mapper: CustomMapper = session.getMapper(CustomMapper::class.java)
mapper.doSomething()
session.commit()
} finally {
session.close()
}

我的问题:

执行此 Lambda 时,一些连接在数据库上保持打开状态。只有当 lambda 容器被自动销毁时,它们才会被销毁。

既然我要关闭所有 session ,为什么会发生这种情况?我可以做些什么来防止这种行为?

最佳答案

您正在使用创建连接池的 PooledDataSource。更改为 UnpooledDataSource,这可能会解决问题。

关于java - 无法关闭与 MyBatis 的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49153277/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com