C++Builder 從ini 文件讀寫Mysql數據庫配置參數的 類

#include <System.Classes.hpp>
#include <IniFiles.hpp>
#include <iostream>

using namespace std;

class MySQLConfig
{
private:
    TIniFile* iniFile;
    AnsiString ServerName;
    AnsiString UserName;
    AnsiString Password;
    AnsiString DatabaseName;

public:
    // 構造函數
    MySQLConfig(const AnsiString& iniFilePath)
    {
        iniFile = new TIniFile(iniFilePath);
    }

    // 析構函數
    ~MySQLConfig()
    {
        delete iniFile;
    }

    // 設置數據庫配置參數
    void SetConfig(const AnsiString& ServerName, const AnsiString& UserName, const AnsiString& Password, const AnsiString& DatabaseName)
    {
        iniFile->WriteString("MySQL", "ServerName", ServerName);
        iniFile->WriteString("MySQL", "UserName", UserName);
        iniFile->WriteString("MySQL", "Password", Password);
        iniFile->WriteString("MySQL", "DatabaseName", DatabaseName);
    }

    // 獲取數據庫配置參數
    AnsiString GetServerName() const
    {
        return iniFile->ReadString("MySQL", "ServerName", "");
    }

    AnsiString GetUserName() const
    {
        return iniFile->ReadString("MySQL", "UserName", "");
    }

    AnsiString GetPassword() const
    {
        return iniFile->ReadString("MySQL", "Password", "");
    }

    AnsiString GetDatabaseName() const
    {
        return iniFile->ReadString("MySQL", "DatabaseName", "");
    }

    // 連接數據庫
    bool Connect()
    {
        // 初始化 MySQL 連接句柄
        MYSQL* conn = mysql_init(NULL);

        // 設置連接參數
        if (mysql_real_connect(conn, GetServerName().c_str(), GetUserName().c_str(), GetPassword().c_str(), GetDatabaseName().c_str(), 0, NULL, 0) == NULL)
        {
            cout << "連接數據庫失敗: " << mysql_error(conn) << endl;
            mysql_close(conn);
            return false;
        }

        return true;
    }

    // 關閉數據庫連接
    void Close()
    {
        if (mysql_close(mysql_conn) != 0)
        {
            cout << "關閉數據庫連接失敗: " << mysql_error(mysql_conn) << endl;
        }
    }
};

int main()
{
    MySQLConfig config("my.ini");

    // 設置數據庫配置參數
    config.SetConfig("localhost", "root", "password", "my_database");

    // 連接數據庫
    if (config.Connect())
    {
        cout << "連接數據庫成功" << endl;
    }
    else
    {
        cout << "連接數據庫失敗" << endl;
        return 1;
    }

    // 執行數據庫操作

    // 關閉數據庫連接
    config.Close();

    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章