当session对象被销毁时,Poco::Data::Session会自动返回到Poco::Data::SessionPool吗?

问题描述 投票:0回答:1

我使用 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 对象是否持有某种引用或指向池内会话的指针?不清楚。

c++ database poco
1个回答
0
投票

是的,会话自动返回池中

© www.soinside.com 2019 - 2024. All rights reserved.