Qt之数据库使用-MySQL

在进行编码之前可能要先安装数据库驱动之类的,可以在网上搜索相关文章,配置好即可。。。。

有一点要注意:程序发布时要把system32里的libmysql.dll放在exe目录下,否则无法连接数据库。

连接数据库:

 static bool createConnection(){
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("xx.xx.xx.xx");
    db.setPort(3306);
    db.setDatabaseName("feadb");
    db.setUserName("mysql");
    db.setPassword("mysqlxxxx");
    if(!db.open()){
        qDebug()<<QObject::tr("Error:Open feareport failed");
        return false;
    }else{
        qDebug()<<"Open db success";
    }
    QSqlQuery query;
    QString sqlCmd="use feadb";
    bool success=query.exec(sqlCmd);
    if(success){
        qDebug()<<QObject::tr("use db success.");

    }else{
        qDebug()<<"use db failed.";
        return false;
    }

    return true;
}

在main函数里调用该函数连接数据库:

if(!createConnection())
    {
         QMessageBox msgBox;
         msgBox.setText("SQL cannot connect.");
         msgBox.exec();
         qCritical()<<"Cannot connect MySQL Server.";
         return 0;
     }

最后,在程序里使用数据库:

 //query whether the task has been already exist.
    qDebug()<<"taskName:"+report->taskName;
    sqlCmd=QString("select * from taskinfo where taskName='"+report->taskName+"'");
    qDebug()<<"sqlCmd:"+sqlCmd;
    query.clear();

    if(query.exec(sqlCmd)&&query.next()){
        qDebug()<<"Error:The task has been exist";
        return false;
    }
    //Insert into MySQL
    sqlCmd=QString("insert into taskinfo(taskName,reportPath) "
                   "values('"+report->taskName+"','"+report->reportPath+"')");
    qDebug()<<"sqlCmd:"+sqlCmd;
    query.clear();
    if(query.exec(sqlCmd)){
        qDebug()<<("exec sqlCmd success.");
    }else{
        qDebug()<<"exec sqlCmd failed.";
        return false;
    }

你可能感兴趣的:(Qt之数据库使用-MySQL)