Qt中连接mysql

1、安装mysql,workbench,为mysql添加环境变量

2、安装Qt带src,然后到如下目录,找到mysql.pro(建议做个副本先)

http://D:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql

mysql.pro

注意路径的 \ / 和双引号的使用,搞不定就照抄

TARGET = qsqlmysqlHEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp#注释掉
#QMAKE_USE += mysqlOTHER_FILES += mysql.jsonPLUGIN_CLASS_NAME = QMYSQLDriverPlugininclude(../qsqldriverbase.pri)#这个主要是添加.h依赖文件使用
INCLUDEPATH+="C:/Program Files/MySQL/MySQL Server 8.0/include"#添加依赖的.lib文件
LIBS+="C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"#生成你所需要的dll存放目录
DESTDIR="D:/MYSQL/lib"#路径换成自己的mysql路径
qsqldriverbase.pri
QT  = core core-private sql-private# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
#include(./qsqldriverbase.pri)
include(./configure.pri)PLUGIN_TYPE = sqldrivers
load(qt_plugin)DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

 3、编译得到两个dll,

由于在mysql.pro中已经定义目标目录,DESTDIR="D:/MYSQL/lib"

复制到

D:\Qt\Qt5.13.2\5.13.2\mingw73_64\plugins\sqldrivers

4、 打开mysql安装目录下lib目录

 复制libmysql.dll到Qt如下bin目录

5、WorkBench创建database和table,Qt项目写代码如下

void Mysql::on_ConnectButton_clicked()
{db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("127.0.0.1");db.setPort(3306);db.setDatabaseName("jetring");db.setUserName("root");db.setPassword("123456");if(db.open()){ui->textEdit->append("Mysql connect success!");}else{ui->textEdit->append("Mysql connect failed.");ui->textEdit->append("Error: " + db.lastError().text());}
}

连接成功!

PS:我的版本

感谢如下文章作者:

https://www.cnblogs.com/lpxblog/p/6698255.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/641381.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java:Java中的异常处理

目录 异常的概念与体系结构 异常的概念: 异常的体系结构: 异常的处理方式 防御式编程: 异常的抛出: 异常的捕获: finally: 代码示例: 异常的处理流程 自定义异常类 举例&#xff1a…

管理 Python 项目的艺术:在 PyCharm 中使用虚拟环境(以BPnP为例)

在 PyCharm 中使用虚拟环境对于 Python 项目开发具有多方面的重要作用,这些作用体现在提升项目管理的效率、保障代码的可运行性以及维护项目的长期稳定性等方面。以下是使用虚拟环境的几个关键好处: 1. 依赖管理和隔离 虚拟环境允许每个项目拥有…

污水处理设备运维注意事项有哪些

污水处理设备的运维是确保污水处理效率和处理质量的关键环节。良好的运维不仅可以延长设备的使用寿命,还能确保污水处理过程的稳定性和可靠性。以下是一些污水处理设备运维的重要注意事项: 1. 定期检查和维护 设备检查:定期对污水处理设备进…

力扣-1844.将所有数字用字符替换

思路: 1. class Solution::定义了一个名为 Solution 的类,用于包装解决问题的方法。 2. def replaceDigits(self, s: str) -> str::定义了一个名为 replaceDigits 的方法,该方法接受一个字符串 s 作为参数&#x…

OSPF的LSA详解

一、什么是LSA?LSA作用? 在OSPF协议中,LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。部分LSA只有LSA头部信息,无链路状态信息。使用LSA来传递路由信息和拓扑信息&#xff0c…

解决Mac使用Vscode无法调用外部终端

前言 今天遇到一个很奇怪的问题,之前好好的用Vscode还能调用外部终端,怎么今天不行了?问题出在哪里呢?请听我娓娓道来。 检查配置文件 我查看了一下配置文件,发现配置文件都是调用外部控制台,没毛病啊。 …

linux入门到精通-第十一章-进程间通信(无名管道)

目录 参考概念**进程通信的目的:**Linux 操作系统支持的主要进程间通信的通信机制: 无名管道概述pipe函数建立无名管道父子进程使用无名管道通信 管道读写特点设置非阻塞的方法查看管道缓冲区命令查看管道缓冲区函数 参考 视频教程 概念 进程是一个独立的资源分配…

Jmeter(十二) - 从入门到精通 - JMeter逻辑控制器 - 终篇(详解教程)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是说,逻辑控制器可以控制采样…

Fully Animated Cats

这个包可以用于任何类型的游戏,作为主要角色,敌人,猎物,或其他任何东西。该软件包提供90个高质量动画、10种不同风格、实时毛发、6个LOD 控制器/动画师不包括在内。此包仅适用于模型和动画(以及纹理和材质)。 这是你可以用这个资产实现的视频(这个移动是在另一个游戏引擎…

【管理咨询宝藏83】某大型集团管控诊断报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏83】某大型集团管控诊断报告 【格式】PDF版本 【关键词】管控诊断、人力资源、组织架构 【核心观点】 - 集团跨越式发展的组织瓶颈&#xff0c…

星域社区原版APP源码/社区交友App源码/动态圈子群聊php源码

简介 初始版本是由RuleAPP规则之树开发的,而星域社区则是在此基础上进行了二次开发和美化。作者花了近一年的时间来打磨它,现在即将推出Pro版。如果你只想免费使用的话,可以使用原始的RuleAPP版本。但是,如果你想要获得更好的美观…

如何进行制造设备数据汇集,发挥数据的价值?

数字化转型正深刻推动制造企业实现远程监控、提高生产效率、降低生产成本、优化产品质量及明晰精细化方向。并且工业互联网的发展离不开工业数据的应用,而制造设备数据汇集正是应用的基础。但制造设备数据汇集存在以下难点及痛点: 1、安全把控难 关键的…