Qt  连接MySQL数据库
Qt 连接MySQL数据库

Qt 连接MySQL数据库

下载安装MySql,然后新建一个本地数据库

在Qt新建一个Project,基类选择widget,简单的测试数据库连接

在.pro加入

QT += sql

在widget.h加入以下头文件

#include <QtSql/QSqlDatabase>
#include <QDebug>
#include <QMessageBox>

在widget.cpp widget的构造函数加入以下内容

 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //这里使用的是MySQL的驱动类型,其他驱动类型可以参考Qt的帮助手册
        db.setHostName("127.0.0.1");//localhost
        db.setPort(3306);           //默认端口
        db.setDatabaseName("data"); //用户自建数据库名称
        db.setUserName("root");     //用户名
        db.setPassword("123456");   //数据库的密码(如果使用的是MySQL,那就是你登录账号的那个密码)
        bool ok = db.open();        //定义一个标志量,返回数据库连接状态
        if (ok){
            QMessageBox::information(this, "infor", "success");
        }
        else {
            QMessageBox::information(this, "infor", "open failed");

        }

当然,以上的步骤是基于已经安装好MySQL驱动的情况下进行。所以在操作前,需要检查一下现在有哪些可用的驱动。

在widget的构造函数里添加这两句

 qDebug() << QSqlDatabase::drivers();      //打印当前可用驱动
打印出来的这些都可以使用,比如有QSLITE,就可以在新建数据库的时候选择此类型。如果想要使用的数据库类型,但是又没有驱动的情况下,需要自己找对应的驱动进行下载安装。

注意:

第一次连接mysql的时候,最常见的报错就是:”QSqlDatabase: QMYSQL driver not loaded“

网上大多数的说法都是要安装相应驱动,但是如果安装了驱动,即用qdebug打印出来显示本地已有驱动的情况下,还是会出现上述报错。

如果你的mysql是64位的,那么在qtcreator中也要相应使用64位的编译器进行编译。否则会因为套件对不上的原因,编译失败。就会出现如上报错。

两个位号一定要对上

如果你发现你的Qt当时安装的时候没有下载相应的编译套件

那么要么重装一次Qt,把缺少的套件勾选上

或者去下载对应位号的mysql