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 Functions: add, create, instance, remove
Creates the SessionFactory.
~SessionFactory();
Destroys the SessionFactory.
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.
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.