码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Qt5.14.2在Windows下使用mysql


    第一步:下载依赖

    1.1去Qt官方下载Qt5.14.2的源代码:

    Index of /archive/qt/5.14/5.14.2/singlehttps://download.qt.io/archive/qt/5.14/5.14.2/single/

     下载链接:https://download.qt.io/archive/qt/5.14/5.14.2/single/qt-everywhere-src-5.14.2.zip

     1.2去Mysql官网下载Mysql SDK

    MySQL :: Download MySQL Connector/C (Archived Versions)https://downloads.mysql.com/archives/c-c/

    32位SDK下载链接:https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-win32.ziphttps://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-win32.zip

    64位SDK下载链接:

    https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-winx64.ziphttps://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-winx64.zip

    第二步:编译和配置

    2.1解压mysql-connector-c-6.1.11-win32.zip和mysql-connector-c-6.1.11-winx64.zip,然后新建文件夹mysql,将32位的文件夹命名为x86,将64位的文件夹命名为x64,将其拷贝到mysql文件夹中.

    2.2解压qt-everywhere-src-5.14.2.zip,(你的qt源代码目录下)\qtbase\src\plugins\sqldrivers\mysql\,将mysql文件夹拷贝进去,然后双击打开mysql.pro.如下图所示:

    2.3打开项目文件之后,如下图所示:

     如果你的Desktop Qt 5.14.2 MSVC2017 32bit和Desktop Qt5.14.2 MSVC2017 64bit同时有感叹号,请参考下方文档,进行自定义配置:

    Qt 添加MSVC2017编译器(2022年保姆级教程,不安装完整VS)_Copperxcx的博客-CSDN博客_msvc2017https://blog.csdn.net/Copperxcx/article/details/122540629?spm=1001.2014.3001.5506我的配置仅供参考:

     2.4配置好了之后打开,如下图所示:

    修改mysql.pro文件参数为下图:

    1. TARGET = qsqlmysql
    2. HEADERS += $$PWD/qsql_mysql_p.h
    3. SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    4. #QMAKE_USE += mysql
    5. OTHER_FILES += mysql.json
    6. PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
    7. include(../qsqldriverbase.pri)
    8. greaterThan(QT_MAJOR_VERSION, 4) {
    9. TARGET_ARCH=$${QT_ARCH}
    10. } else {
    11. TARGET_ARCH=$${QMAKE_HOST.arch}
    12. }
    13. contains(TARGET_ARCH, x86_64) {
    14. #ARCHITECTURE = x64
    15. INCLUDEPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x64/include"
    16. DEPENDPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x64/include"
    17. LIBS += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x64/lib/libmysql.lib"
    18. } else {
    19. #ARCHITECTURE = x86
    20. INCLUDEPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x86/include"
    21. DEPENDPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x86/include"
    22. LIBS += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x86/lib/libmysql.lib"
    23. }

    上述的INCLUDEPATH,DEPENDPATH和LIBS根据自己的路径进行设置.

    2.5点击QtCreator上方的菜单栏中的构建(B)->重新构建所有项目.(此处只是生成了,Windows下的32位的Debug和Release的dll,你也可以生成Windows64位,MinGW32位和64位的库,只需要点击左下角小电脑更改编译器即可).

    2.6在D盘根目录找到plugins\sqldrivers\qsqlmysqld.dll和qsqlmysql.dll(如果找不到那么就装个everything进行搜索吧)将其分别拷贝到你的Qt安装目录下的msvc2017\plugins\sqldrivers\(这是32位的目录),如果是64位的需要拷贝到msvc2017_64\plugins\sqldrivers\.

    2.7找到mysql文件夹,将libmysql.dll拷贝到msvc2017\bin目录下.

    自此所有编译和配置操作完毕,接下来进行测试!

    第三步:测试

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. int main(int argc, char *argv[])
    7. {
    8. QApplication a(argc, argv);
    9. QtWidgetsApplication1 w;
    10. w.show();
    11. //查看Qt支持的数据库
    12. qDebug() << QSqlDatabase::drivers();
    13. QSqlDatabase database = QSqlDatabase::addDatabase("QMYSQL");
    14. database.setHostName("192.168.211.128"); //设置主机地址
    15. database.setPort(3306); //设置端口 默认3306
    16. database.setDatabaseName("table_one"); //设置数据库名称
    17. database.setUserName("test"); //对应数据库的用户名
    18. database.setPassword("123456");//对应数据库的密码
    19. if (!database.open())
    20. qDebug() << "failed" << database.lastError().text();
    21. else
    22. qDebug() << "success";
    23. QSqlQuery query;
    24. query.prepare("select * from hardware");
    25. query.exec();
    26. while (query.next())
    27. {
    28. QSqlRecord record = query.record();
    29. for (int i = 0; i < record.count(); ++i)
    30. {
    31. qDebug() << record.fieldName(i) << "->" << record.value(i).toString();
    32. }
    33. printf("\n");
    34. }
    35. database.close();
    36. return a.exec();
    37. }

    运行结果:

     如果你的Mysql数据连不上,报错SSL connection error: unknown error number,参考链接:

    QT连接mysql:实现5.9.0的32位QT连接8.0的64位mysql并且解决SSL​“SSL connection error: unknown error number QMYSQL错误_Nova_SSS的博客-CSDN博客https://blog.csdn.net/Nova_SSS/article/details/125379858?spm=1001.2014.3001.5506

    已编译好的分享给大家,链接地址:

    Qt5.14.2插件qsqlmysql.dll-C++文档类资源-CSDN文库https://download.csdn.net/download/qq_31629063/86899370

  • 相关阅读:
    杭电oj 2049 不容易系列之(4)——考新郎 C语言
    [ubuntu]ubuntu设置虚拟内存
    【信号隐藏-数字水印】基于DCT实现音频水印嵌入提取附Matlab代码
    SpringBoot集成websocket及上线前服务器nginx配置websocket
    Springboot开发Webservice服务端和客户端
    pdf文件打开后部分文字无法显示
    redis 分布式锁的实现原理
    Centos7 安装部署 Kubernetes(k8s) 高可用集群
    Pytorch+cpp_cuda extension 课程一
    Mysql 索引优化——Explain
  • 原文地址:https://blog.csdn.net/qq_31629063/article/details/127682039
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号