单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点以访问该实例,以下是 MySQL 数据库的单例模式。

mysqldatabase.h

#include <QSqlDatabase>
#include <QDebug>
class MySQLDatabase
{
private:
    QSqlDatabase db;
    static MySQLDatabase * instance;
    MySQLDatabase();
public:
    static MySQLDatabase* getInstance();
    QSqlDatabase getDatabase() const;


};

mysqldatabase.cpp

#include "mysqldatabase.h"

MySQLDatabase* MySQLDatabase::instance = nullptr; // 声明一个私有类指针来获取单例对象

MySQLDatabase::MySQLDatabase()
{
    // 设置数据库连接参数
    db = QSqlDatabase::addDatabase("QMYSQL"); 
    db.setHostName("localhost"); // 设置数据库主机名
    db.setDatabaseName("database"); // 设置数据库名称
    db.setUserName("root"); // 设置数据库用户名
    db.setPort(3306); // 设置数据库端口号
    db.setPassword("root"); // 设置数据库密码

    
    if (!db.open()) {
        qDebug() << "Error: Failed to connect database.";
    }
}


MySQLDatabase *MySQLDatabase::getInstance()
{
    if (!instance) {
        instance = new MySQLDatabase(); 
    }
    return instance; 
}


QSqlDatabase MySQLDatabase::getDatabase() const
{
    return db; 
}

 

 

更多推荐