Qt6.3.1连接MySql8.0

前言 

由于这个学期比较少,空闲时间比较多。平时就是接接Python爬虫的单子,但一想到我将来不会往这个方向上发展,所以又想着怎么提高自己计算机最基础的基本的几门功课的实力。于是,就想着用Qt做一个能够连接数据库的学生成绩管理系统的程序。既能提高自己对数据库的熟练程度,又可以加深自己对C++的理解,何乐而不为之呢?

其实,我是那种学的很杂的同学,我不愿停留在学校教的那么点东西,什么都会一点,又什么都不甚了解,知其然而不知其所以然。我深知这样只会将路子越走越窄,但又苦于没有明确的方向,所以能做的就只有不断去提高自己对计算机最基础的几门课程的熟练程度和理解深度。这个系列应该会有好几期,感兴趣的同学可以和我一起了解和讨论这个系统开发的详细细节,当然也非常欢迎各位大佬对我文章的斧正。废话说了这么多下面开始正题!

正题

我使用的是Qt6.3.1和MySql8.0版本,据网上说Qt6以后的版本好像是不带MySql的驱动,也没有可以自己进行编译驱动的文件了。只能去网上下载其他大佬已经编译好的驱动,这也是极好的。一想到我当初用CMake编译OpenCV的.dll文件,然后配置到Qt上就后怕,我感觉那玩意纯靠运气,反正我不知道失败了多少次,最后终于在改了无数次参数后终于编译成功。

Qt的MySql驱动下载地址:

Releases · thecodemonkey86/qt_mysql_driver · GitHub

大家可以根据自己Qt的版本进行选择下载那个驱动,Qt版本查看方式如下图所示

顺便说一下MySql版本的查看方式,当然前提是你已经配置了环境变量,否则就需要进入到MySql的bin目录下,按住Shift然后鼠标右键点击在此打开Poweshell窗口

输入命令行:

mysql -V

还有一个注意事项就是注意编译器的位数和MySql的位数要是相同的,我的就都是64位的。

下载好后你会得到一个压缩包,将压缩包解压

这里注意,下载你对用编译器的驱动,我这里用的编译器是mingw,下载的也是对应的驱动。

然后将下面三个文件复制到mingw的bin路径下

将子文件夹也就是sqldrivers中的两个文件复制到mingw的sqldrivers下面

如果是qmake,再在你新建的Qt文件的加一句

QT += sql

如果是CMke

find_package(Qt6 COMPONENTS Sql REQUIRED)
 
target_link_libraries(test_QtConnectMySQL PRIVATE Qt6::Sql)

到这里配置就结束了。

创建数据库和连接数据库

想要连接数据库就需要有对应的数据库,所以见需要先创建一个数据库

test就是我们接下来要用到的数据库

然后就是在Qt新建项目里面连接数据库,直接上代码

main.cpp

#include "mainwindow.h"
#include <QApplication>
#include<QSqlDatabase>
#include<QDebug>

int main(int argc, char *argv[])
{

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");  //连接本地主机
    db.setPort(3306);//端口号如果安装时没有自己设置就是默认的3306,如果设置了就是你自己设置的端口号
    db.setDatabaseName("test");//你要连接的数据库的名字我的是test
    db.setUserName("root");//你的用户名我的是root
    db.setPassword("123456");//你的密码我的是123456
    bool ok = db.open();
    if (ok){
         qDebug() << "link success";
    }
    else {
         qDebug() <<  "link failed";
    }
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

然后直接点击运行,如果连接成功就会如下图所示

注意事项

注意MySql的位数和编译器的位数尽量保持一致,不然可能出错

注意下载对应编译器的驱动,是mingw就下mingw的驱动,是msvc就下msvc的驱动

如有错误,欢迎各位同学指正。

此文章仅用于学习,请勿用于违法犯罪。

猜你喜欢

转载自blog.csdn.net/qq_64241302/article/details/132612021
今日推荐