class SessionFactory

Library: Data
Package: DataCore
Header: Poco/Data/SessionFactory.h


A SessionFactory is a singleton class that stores Connectors and allows to create Sessions of the required type:

Session ses(SessionFactory::instance().create(connector, connectionString));

where the first param presents the type of session one wants to create (e.g. for SQLite one would choose "SQLite") and the second param is the connection string that the connector requires to connect to the database.

A concrete example to open an SQLite database stored in the file "dummy.db" would be

Session ses(SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));

An even simpler way to create a session is to use the two argument constructor of Session, which automatically invokes the SessionFactory:

Session ses("SQLite", "dummy.db");

Member Summary

Member Functions: add, create, instance, remove




Creates the SessionFactory.




Destroys the SessionFactory.

Member Functions


void add(
    const std::string & key,
    Connector * pIn

Registers a Connector under the given key at the factory. If a registration for that key is already active, the first registration will be kept, only its reference count will be increased. Always takes ownership of parameter pIn.


Session create(
    const std::string & key,
    const std::string & connectionString

Creates a Session for the given key with the connectionString. Throws an Poco:Data::UnknownDataBaseException if no Connector is registered for that key.

instance static

static SessionFactory & instance();

returns the static instance of the singleton.


void remove(
    const std::string & key

Lowers the reference count for the Connector registered under that key. If the count reaches zero, the object is removed.