我使用 Poco::Data::SessionPool 类来管理数据库连接。我需要从池中获取会话对象来执行查询。问题是,当该会话的对象被销毁时,该会话是否会自动返回到池中,还是我需要显式地执行此操作?文档对此非常模糊。有一个
Poco::Data::SessionPool::putBack(PooledSessionHolderPtr pHolder)
方法,但不清楚如何将 pHolder 对象绑定到 Session 对象。
#include <Poco/Data/SessionPool.h>
using namespace Poco::Data;
SessionPool my_pool("PostgreSQL", connectionString, NUM_OF_POOL_CONNECTIONS);
Session GetSession()
{
return my_pool.get();
}
int main()
{
Session sess = GetSession();
Statement sql_query(session);
sql_query << query;
sql_query.execute();
// ...
// Will session pointed by "sess" get back to session pool automatically?
return 0;
}
从 SessionPool::get() 生成的 Session 对象是否持有某种引用或指向池内会话的指针?不清楚。
是的,会话自动返回池中