【接口汇总】Qt访问MySQL和SQL Server数据库的两种方式

文章目录

  • 前言
  • 一、连接数据库
      • 1.接口声明
      • 2.接口实现
  • 二,断开数据库
      • 1.接口声明
      • 2.接口实现
  • 三,数据库的配置文件
  • 总结


前言

提示:个人接口的使用总结(Qt开发)

描述:在项目开发中对数据库的操作往往起着不可或缺的作用,比如连接和断开数据库,增删查改等一系列操作,所以本人在这里对数据库的连接和断开操作的接口就简要的记录一下吧。


一、连接数据库

提示:MySQL通过QMYSQL驱动连接,SQL Server通过QODBC驱动连接

1.接口声明

 void DatabaseConnect(QSqlDatabase &db,QString connectName);
 /*
 参数:db表示数据库对象,connectName表示数据库的连接名称
 返回值:空
 */

2.接口实现

void SEMSDatabase::DatabaseConnect(QSqlDatabase &db, QString connectName)
{
    //数据库初始化
    if(true == QSqlDatabase::contains(connectName)){
        db = QSqlDatabase::database(connectName);
        //cout << QStringLiteral("已存在的连接名称");
    }else{
        db = QSqlDatabase::addDatabase("QMYSQL",connectName);	//连接MySQL
        //db = QSqlDatabase::addDatabase("QODBC",connectName);	//连接SQL Server
        //cout << QStringLiteral("新添加的连接名称");
    }

    //初始化数据库连接参数的默认值
    QString hostIp = ConfigValue::getConfigValueWithKey("Config/sqlConfig.ini","CONNECTMYSQL/SERVER").toString();
    quint32 Port{3306};
    QString DbName{"sems"};		//C11统一初始化
    QString UID{"sa"};
    QString PWD{"1008"};
    
    //读取数据库的配置文件
    QSettings settings("Config/sqlConfig.ini",QSettings::IniFormat);
    //以下为MySQL的连接方式
    hostIp = settings.value("CONNECTMYSQL/SERVER").toString();
    Port = settings.value("CONNECTMYSQL/PORT").toInt();
    DbName = settings.value("CONNECTMYSQL/DbName").toString();
    UID = settings.value("CONNECTMYSQL/UID").toString();
    PWD = settings.value("CONNECTMYSQL/PWD").toString();
    db.setHostName(hostIp);
    db.setPort(Port);
    db.setDatabaseName(DbName);
    db.setUserName(UID);
    db.setPassword(PWD);
    
/*    //以下为SQL Server的连接方式
    hostIp = settings.value("CONNECTSQL/SERVER").toString();
    DbName = settings.value("CONNECTSQL/DATABASE").toString();
    UID = settings.value("CONNECTSQL/UID").toString();
    PWD = settings.value("CONNECTSQL/PWD").toString();
    QString connectInfo = QString("DRIVER={QODBC};SERVER=%1;DbName=%2;UID=%3;PWD=%4;")
            .arg(hostIp).arg(DbName).arg(UID).arg(PWD);
    db.setDatabaseName(connectInfo);
*/
    int i=0;
    do{
        db.open();  //打开数据库
        i++;
        if(db.isOpen() == false){
            QThread::msleep(300);
            cout << QStringLiteral("数据库重连...") << connectName;
        }else{
            break;
        }
    }while(i<10);

    if(db.isOpen() == false){
//        Warning::setWarning("connect database defeat");
        cout << QStringLiteral("connect database defeat:") << connectName;
    }else{
//        cout <
    }
}

二,断开数据库

1.接口声明

bool DatabaseDisConnect(QString connectName);
/*
参数:connectName表示数据库的连接名称,根据该名称进行数据库的断开
返回值:true表示断开成功,false表示断开失败
*/

2.接口实现

bool DatabaseDisConnect(QString connectName)
{
    if(QSqlDatabase::contains(connectName))
    {
        QSqlDatabase::removeDatabase(connectName);
        return true;
    }
    return false;
}

三,数据库的配置文件

提示:该配置文件的图片仅供参考哈

【接口汇总】Qt访问MySQL和SQL Server数据库的两种方式_第1张图片


总结

日常摸鱼:OK,接口记录完成了,记得在.pro文件里加入 sql 模块(Qt += sql),然后在上述接口声明的头文件里添加 #include < QSql >,#include < QSqlDatabase >。对数据库的增删查改主要是通过#include < QSqlQuery >来操作。

你可能感兴趣的:(接口汇总,数据库,qt,mysql,sqlserver)