Qt5.14.2在Windows下使用mysql

news2024/11/30 2:33:04

第一步:下载依赖

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文件参数为下图:

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

greaterThan(QT_MAJOR_VERSION, 4) {
    TARGET_ARCH=$${QT_ARCH}
} else {
    TARGET_ARCH=$${QMAKE_HOST.arch}
}

contains(TARGET_ARCH, x86_64) {
    #ARCHITECTURE = x64
    INCLUDEPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x64/include"
    DEPENDPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x64/include"
    LIBS += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x64/lib/libmysql.lib"
} else {
    #ARCHITECTURE = x86
    INCLUDEPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x86/include"
    DEPENDPATH += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x86/include"
    LIBS += "D:/Software/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql/mysql/x86/lib/libmysql.lib"
}

上述的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目录下.

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

第三步:测试

#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlRecord>
#include <QtSql/QSqlField>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtWidgetsApplication1 w;
    w.show();
	//查看Qt支持的数据库
    qDebug() << QSqlDatabase::drivers();
	QSqlDatabase database = QSqlDatabase::addDatabase("QMYSQL");
	database.setHostName("192.168.211.128");  //设置主机地址
	database.setPort(3306);  //设置端口 默认3306
	database.setDatabaseName("table_one");  //设置数据库名称
	database.setUserName("test");  //对应数据库的用户名
	database.setPassword("123456");//对应数据库的密码
	if (!database.open())
		qDebug() << "failed" << database.lastError().text();
	else
		qDebug() << "success";
	QSqlQuery query;
	query.prepare("select * from hardware");
	query.exec();
	while (query.next())
	{
		QSqlRecord record = query.record();
		for (int i = 0; i < record.count(); ++i)
		{
			qDebug() << record.fieldName(i) << "->" << record.value(i).toString();
		}
		printf("\n");
	}
	database.close();
    return a.exec();
}

运行结果:

 如果你的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文库icon-default.png?t=M85Bhttps://download.csdn.net/download/qq_31629063/86899370 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试官:说说TCP如何实现可靠传输

今天来讲一下TCP是如何保证可靠传输的。这也是面试常问的一个题目&#xff0c;这个问题不单止能看出你是否真的了解TCP原理&#xff0c;更看出你是否有一个总结的能力。 我们从三个部分来讲TCP是如何实现可靠传输的。 滑动窗口 首先是讲TCP中的滑动窗口&#xff0c;它和TCP的…

基本的Dos命令

基本的Dos命令 打开CMD的方式 开始系统命令提示符win键R输入cmd (推荐使用)在任意的文件夹下&#xff0c;按住Shift键鼠标右击&#xff0c;打开命令行窗口在资源管理器地址栏路径前面加 “cmd ”管理员运行方式&#xff1a;命令提示符右键以管理员身份运行&#xff08;最高权…

动态规划--01背包问题详解

代码随想录day42和day43 动态规划 模块01背包问题 “即使到不了远方&#xff0c;心中也要有远方的模样。” 文章目录1. 01背包理论基础1.1什么是背包问题1.2二维dp数组01背包1.3一维dp数组(滚动数组)01背包2.leetcode 416.分割等和子集2.1 详细思路及思考难点2.2具体步骤及代码…

当食品制造业遇见数字化工具,如何借助S2B2C电商系统实现企业新增长

食品制造业是我国产业发展中的重要组成部分&#xff0c;具有点多、面广、投资小、见效快的特点&#xff0c;在经济发展中发挥着重要作用。根据工信部数据统计&#xff0c;从2018至2021年我国食品制造业经营规模稳步增长&#xff0c;2021年我国食品制造业营业收入达21268.1亿元&…

QT·移植Qt到ARM平台及搭建Qt交叉编译环境

目录 一、编译tslib库 二、移植 tslib 到文件系统 三、编译Qt源码&#xff08;用于移植到ARM&#xff09; 四、移植Qt到文件系统 五、搭建 Qt Creator 交叉编译环境 六、获得Qt可执行文件的另一种方法 要想在ARM平台上运行Qt程序&#xff0c;得满足以下两个点&#xff1a;1、…

【表达式求值】

目录&#xff1a;前言一、有效的括号&#xff08;一&#xff09;题目分析&#xff08;二&#xff09;整体代码二、表达式求值&#xff08;一&#xff09;题目分析1.栈的基本操作&#xff1a;2. 大体思路&#xff1a;3.具体计算过程&#xff1a;&#xff08;二&#xff09;整体代…

【代码随想录】二刷-哈希表

哈希表 《代码随想录》 哈希表一般用来快速查找某个元素是否在一个集合中。如果使用枚举的话时间复杂度为O(n)&#xff0c;而使用哈希表只O(1)就可以做到。——元素查询。 242.有效的字母异位词 使用unordered_map // 时间复杂度 O(n) // 空间复杂度 O(n) class Solution { pub…

嵌入式分享合集94

一、单片机硬件电路设计 减少后级电源对前级的影响&#xff0c;防止电源正负接反烧坏后级电路&#xff0c;防止电源关电时电流倒灌&#xff0c;但经过二极管有0.4V左右压降&#xff0c;需要考虑经过0.4V降压后会不会低于后级电路的正常工作电压。 一、按键电路 R1上拉电阻&…

用C语言开发入门游戏FlappyBird

前言 《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品&#xff0c;游戏于2013年5月24日上线&#xff0c;并在2014年2月突然暴红。2014年2月&#xff0c;《Flappy Bird》被开发者本人从苹果及谷歌应用商店撤下。2014年8月份正式回归APP Store&#xf…

java从零开始系统性学习完整笔记(一)

java从零开始系统性学习完整超全资源笔记(还在更新中&#xff09; 前言 资源来自&#xff1a;王汉远java基础&#xff0c; B站视频&#xff1a; https://www.bilibili.com/video/BV1b4411g7bj/?spm_id_from333.1007.top_right_bar_window_custom_collection.content.click&a…

渗透测试之分享常用工具、插件和脚本(干货)

BRUP插件&#xff1a; 漏洞挖掘插件&#xff1a;Autorize、CSRF Token Tracker、XSS Validator、Turbo Intruder 辅助插件&#xff1a;HaE、sqlmap4brup、hackbar、Software Vulnerability Scanner 浏览器插件&#xff1a; wappalyzer、MySSL、Cookie Editor 脚本&#xff1a; …

Vue学习:vue生命周期

Vue实例有一个完整的生命周期&#xff0c;也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程&#xff0c;我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程&#xff0c;就是生命周期。生命周期又称为生命周期回调函数&#…

水果叠叠乐

水果叠叠乐 介绍 消消乐是一款益智类小游戏&#xff0c;最近比较火爆的一种是立体叠叠乐式的&#xff0c;然后小蓝也想开发一个自己练练手&#xff0c;给它起名叫“水果叠叠乐”。 准备 本题已经内置了初始代码&#xff0c;打开实验环境&#xff0c;目录结构如下&#xff1…

OSPF高级配置——学习OSPF路由协议的高级应用

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.路由重分发及配置 1.路由重分发概述 2.理解路由重分发 3.路…

【HMS Core】华为分析SDK如何申请数据导出功能?

1、问题描述 项目中集成了华为分析SDK&#xff0c;现在有一个需求&#xff0c;想要申请数据导出功能&#xff0c;申请页面提示数据导出功能目前仅对部分邀请伙伴开放&#xff0c;需要通过在线提单的方式申请开通此功能&#xff0c;那么具体该如何操作呢&#xff1f; 2、解决方…

校园跑腿微信小程序,校园跑腿小程序,微信小程序跑腿系统毕设作品

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信校园跑腿小程序系统&#xff0c;前台用户使用小程序发布跑腿任何和接跑腿任务&#xff0c;后台管理使用基于PHPMySql的B/S架构&#xff1b;通过后台管理跑腿的用户、查看跑腿信息和对应订单。 意义…

C++ Reference: Standard C++ Library reference: C Library: cwchar: wcstoll

C官网参考链接&#xff1a;https://cplusplus.com/reference/cwchar/wcstoll/ 函数 <cwchar> wcstoll long long int strtoll (const wchar_t* str, wchar_t** endptr, int base); 将宽字符串转换为long long整数 解析C宽字符串str&#xff0c;将其内容解释为指定base的…

高级FPGA设计结构实现和优化_(六)静态时序分析

高级FPGA设计结构实现和优化_静态时序分析标准分析锁存器组合反馈标准分析 静态时序分析(STA)指的是在一个设计中与一组约束有关的所有时序路径的综合性分析&#xff0c;为了确定一个设计是否是“时序一致的”。由FPGA设计者遇到的基本路径是输入到触发器、触发器到触发器、触发…

MySQL进阶一 一条select语句的执行流程

文章目录前言MySQL的执行流程第一步&#xff1a;连接器第二步&#xff1a;查询缓存第三步&#xff1a;解析SQL第四步&#xff1a;执行 SQL预处理器优化器执行器主键索引查询全表扫描索引下推总结前言 有一位同志问我为什么很久没更新了&#xff0c;因为前一个礼拜在复盘JavaSE…

【详解】手撕 一维、二维、三维差分数组原理(附图解,模板,例题分析)

【差分专题】 引言 ​ 差分是一种处理数据巧妙而简单的方法&#xff0c;可以应用于区间修改和询问问题。例如&#xff0c;将给定的数据集合 A 分成很多区间&#xff0c;并对这些区间进行很多次操作&#xff0c;每次都是对某段区间内的所有元素做相同的加减操作&#xff0c;此…