Qt 连接 MySql

先在 pro 加入 QT += sql

加入头文件:

#include <QSqlDatabase>
#include <QSqlQuery>

把 mysql 安装目录 lib 下的 libmysql.dll 拷贝到 F:\Qt_5.9.2\5.9.2\mingw53_32\bin 下面(根据自己用的编译器和安装位置决定)

这里写图片描述

这里写图片描述

#include "widget.h"
#include "ui_widget.h"

#include <QSqlDatabase>
#include <QDebug>
#include <QSqlQuery>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    initSQL();
}

void Widget::initSQL()
{
    QSqlDatabase d = QSqlDatabase::addDatabase("QMYSQL");
    d.setHostName("127.0.0.1");
    d.setDatabaseName("testqt");
    d.setPort(3306);
    d.setUserName("root");
    d.setPassword("mysql");
    if(d.open())
        qDebug()<<"open!";
    else
        qDebug()<<"error!";

    QSqlQuery qsql = QSqlQuery(d);

    QString str = "SELECT * FROM info";
    qsql.prepare(str);
    qsql.exec();
    while (qsql.next()) {
        qDebug()<<"ID:"<<qsql.value(0).toInt();
        qDebug()<<"Age:"<<qsql.value(1).toInt();
        qDebug()<<"Name:"<<qsql.value(2).toString();
    }
}

Widget::~Widget()
{
    delete ui;
}

这里写图片描述

这里写图片描述

	98年菜鸡一枚,请大佬们多多关照!
<think>嗯,用户想了解如何使用Qt连接MySQL数据库,需要教程、示例代码和配置方法。首先,我得回忆一下Qt连接数据库的基本步骤。记得Qt使用QSql模块来处理数据库,所以需要包含相关的头文件,比如QSqlDatabase和QSqlQuery。然后,用户需要安装MySQL,并确保有相应的驱动。 接下来,可能需要提到驱动的问题。Qt默认可能没有启用MySQL的驱动,需要自己编译或者确保插件可用。比如,用户可能需要检查Qt安装目录里有没有qsqlmysql.dll或者类似的驱动文件。如果驱动不存在,可能需要从源代码编译生成,或者从MySQL的安装目录复制libmysql.dll到Qt的bin目录下,如引用[3]提到的。 然后是配置数据库连接的步骤。创建QSqlDatabase对象,设置数据库类型、主机名、用户名、密码、数据库名等信息。打开连接,并检查是否成功。如果失败,可能需要处理错误信息,比如调用lastError()方法。引用[1]和[2]提到了连接失败时的备选方法,比如使用ODBC,但用户可能更倾向于直接连接。 示例代码部分,应该展示如何建立连接、执行查询和处理结果。比如,用QSqlQuery执行SELECT语句,遍历结果集。同时,要提醒用户正确管理资源,比如关闭数据库连接。 另外,可能需要注意不同版本的QtMySQL之间的兼容性问题,比如是否使用正确的驱动版本。比如,如果Qt是64位的,MySQL的库文件也应该是64位的。还有,部署时需要将必要的dll文件包含进去,避免运行时找不到驱动。 用户可能遇到的常见问题包括驱动未加载、连接参数错误、MySQL服务未启动等。需要给出排查建议,比如检查错误信息,确认MySQL服务器运行状态,验证用户名和密码是否正确,以及网络是否通畅。 最后,生成相关问题,帮助用户深入了解,比如性能优化、事务处理、预处理语句等,这些扩展内容可以引导用户进一步学习。</think>### QT连接MySQL数据库的配置与示例代码 #### 一、环境准备 1. **安装MySQL驱动** - Qt默认未包含MySQL驱动插件`qsqlmysql.dll`,需手动编译或复制: - 从MySQL安装目录(如`C:\Program Files\MySQL\Connector C++ 8.0\lib64`)找到`libmysql.dll`和`libmysql.lib`,复制到Qt的编译输出目录(如`Qt\5.15.2\mingw81_64\bin`)[^3]。 - 验证驱动是否存在: ```cpp qDebug() << QSqlDatabase::drivers(); // 查看支持的数据库驱动 ``` 2. **配置Qt项目文件(.pro)** ```qmake QT += sql ``` #### 二、连接MySQL的代码实现 ```cpp #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> bool connectMySQL() { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 主机地址 db.setPort(3306); // 端口号 db.setDatabaseName("test_db"); // 数据库名 db.setUserName("root"); // 用户名 db.setPassword("123456"); // 密码 if (!db.open()) { qDebug() << "连接失败:" << db.lastError().text(); return false; } qDebug() << "连接成功!"; return true; } // 执行查询示例 void queryData() { QSqlQuery query; query.exec("SELECT id, name FROM users"); while (query.next()) { int id = query.value(0).toInt(); QString name = query.value(1).toString(); qDebug() << id << name; } } ``` #### 三、常见错误处理 1. **驱动未加载** - 错误提示:`QSqlDatabase: QMYSQL driver not loaded` - 解决方案:确认`libmysql.dll`已复制到正确路径,且与Qt版本位数一致。 2. **连接超时** - 检查MySQL服务是否启动:`sudo service mysql start`(Linux)或通过任务管理器(Windows)。 3. **认证失败** - 使用MySQL命令行验证账号密码:`mysql -u root -p`[^2]。 #### 四、通过ODBC连接(备选方案) 1. 下载ODBC驱动:[MySQL Connector/ODBC](https://dev.mysql.com/downloads/connector/odbc/) 2. 配置数据源后使用: ```cpp QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("DRIVER={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=test_db;Uid=root;Pwd=123456;"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值