COMPASSi/trunk/code/inc/Util/include/ConnectionPool.h

66 lines
3.4 KiB
C
Raw Permalink Normal View History

2025-06-25 15:06:42 +08:00
#ifndef CONNECTIONPOOL_H
#define CONNECTIONPOOL_H
#include <QString>
#include <QtSql>
#include "Singleton.h"
#include "UtilityGlobal.h"
/**
* 使使线
*
* Qt 5.4 线线使 ()线
* 线使
*
* Qt :
* 1. Qt 100
* 2. Qt 访
* 3. Qt 访 Sqlite 访 MySQL 访
* Qt
*
* 使:
* 1.
* QSqlDatabase db = ConnectionPool::instance().openConnection();
*
* 2. 使 db 访
* QSqlQuery query(db);
*
* 3. 使 QSqlDatabase::removeDatabase(ConnectionName)
*
* testOnBorrow :
* testOnBorrow true ()
* 访testOnBorrow true
* SQL MySQL SELECT 1 FROM dualSQLite 使 SELECT 1
*
* testOnBorrow false QSqlDatabase::isOpen()
* true (Qt )
*/
class QSqlDatabase;
class ConnectionPoolPrivate;
class UTILITY_API ConnectionPool {
SINGLETON(ConnectionPool)
public:
/**
* @brief 使使线
* connectionName (线)
* 线使 connectionName
*
* @param connectionName
* @return
*/
QSqlDatabase openConnection(const QString &dbName,const QString &connectionName = QString());
void disConnection(const QString &dbName,const QString &connectionName = QString());
private:
QSqlDatabase createConnection(const QString& dbName,const QString &connectionName); // 创建数据库连接
ConnectionPoolPrivate *d;
};
#endif // CONNECTIONPOOL_H