Qt连接mysql数据库---kalrry

news2024/11/12 19:56:02

Qt连接mysql数据库---kalrry

  • 前言
  • 解决方法1
  • 解决方法2

前言

Qt自带SQLite数据库驱动很好用,但如果甲方要求必须使用MySql,那么坑就来了(本教程在Qt5版本下测试成功,Qt6需要自行尝试)
以下是记录解决Qt连接mysql的驱动问题

解决方法1

使用mysql安装目录下已编译的驱动【不一定有效】
由于mysql驱动不是对所有Qt版本都通用的,所以,此方法未必有效。之前测试过,Qt5.9 MSVC2017和mysql5.7有效,其他的无效

方法:将mysql的lib文件夹中的动态库复制到Qt对应编译器的bin目录下即可
编译打包后,可能需要再次将动态库复制到打包软件的根目录

解决方法2

手动编译mysql【与所用的编译器匹配】

  1. 进入Qt源码的目录【安装Qt时需要选择安装source才有该目录】:D:\DevEnv\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql
  2. 修改mysql.pro文件
# 添加如下信息,并注释掉QMAKE_USE += mysql
INCLUDEPATH +="D:\DevEnv\mysql-8.0.23-winx64\include"  # mysql头文件目录
LIBS +="D:\DevEnv\mysql-8.0.23-winx64\lib\libmysql.lib"  # mysql库文件目录
DESTDIR  = ../mysql/lib/  # 指定编译后输出位置

请添加图片描述

  1. 编译
    请添加图片描述
    使用Qt 5.15.2 MinGW 64bit编译,生成的动态库只适合此编译器
    出现了一个问题【此问题似乎可以不用管它】
    请添加图片描述
    解决办法,修改如下文件:
    请添加图片描述
  2. 编译MSVC问题
    可能会出现:Qt之msvc-version.conf loaded but QMAKE_MSC_VER isn’t set
解决办法:在D:\DevEnv\Qt\5.15.2\msvc2019_64\mkspecs\common的msvc-version.conf配置文件中添加QMAKE_MSC_VER = 1900即可

请添加图片描述
再次编译,生成lib文件夹【MinGW和MSVC生成的文件不太一样】
请添加图片描述

  1. 复制lib文件夹的文件到

注意:此方法同样需要复制mysql/lib目录下的文件到Qt的bin目录下
请添加图片描述

  1. 连接测试
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("wordmemory");
db.setUserName("root");
db.setPassword("123456");
bool ok = db.open();
if (ok) qDebug() << "连接数据库ok";
else qDebug() << "连接数据库失败";

请添加图片描述

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

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

相关文章

企业需要多少六西格玛绿带?

在探讨企业的六西格玛绿带专业人员需求时&#xff0c;我们需要理解这个术语的背景和含义。六西格玛是一种质量改进方法&#xff0c;通过数据驱动的方法来解决过程问题和提高效率。六西格玛绿带是一种专业技能的认证&#xff0c;代表了对于六西格玛方法的深入理解和实践经验。 在…

超声波清洗机洗眼镜效果好吗?超声波清洗机洗眼镜推荐

眼镜是我们日常生活中不可或缺的伙伴。然而&#xff0c;在长时间使用之后&#xff0c;眼镜上往往会沾染各种污垢&#xff0c;这些污渍不仅影响视觉效果&#xff0c;还可能引起眼部不适。因此&#xff0c;清洁眼镜显得尤为重要。幸运的是&#xff0c;有了超声波清洗机这一工具&a…

春招审核新策略:Spring Boot系统实现

3系统分析 3.1可行性分析 通过对本大学生入学审核系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本大学生入学审核系统采用Spring Boot框架&#xff0c;JA…

树形结构-数据结构

一、基本知识 树&#xff1a;一对多的树形结构顶层的结点&#xff1a;称为根节点叶子结点&#xff08;终端结点&#xff09;&#xff1a;最外围的结点&#xff0c;只有前驱结点&#xff0c;没有后继结点的结点&#xff0c;其结点的度是0分支结点&#xff1a;分支点是描述数据结…

金山在线文档编辑器

官方文档地址&#xff1a;快速开始-WebOffice 知识库 首先按照文档写的方式将包引入项目了 util.js import WebOfficeSDK from "../../public/JSEditor/open-jssdk-v0.0.13.umd" export function WordSDK(url, isEdit, mountDom, isShowTopArea, isShowHeader) {c…

【HTML】HTML页面和常见标签

文章目录 什么是前端HTML 页面编写如何快速生成代码框架常见标签注释标签标题标签段落标签换行标签格式化标签 什么是前端 Web 前端&#xff0c;用来直接给以用户呈现的一个一个的网页。一个软件通常是由 后端前端 完成的 后端&#xff1a;通过 Java/C等语言&#xff0c;完成相…

机械厂选并联电容器的要求

在机械厂选择并联电容器时&#xff0c;需要考虑多个因素&#xff0c;以确保无功补偿设备能够有效提高功率因数、降低电网损耗、提升电能质量。以下是机械厂选用并联电容器时的一些关键要求&#xff1a; 1、容量选择 无功功率需求&#xff1a;根据机械厂的负载特性&#xff0c;…

Apple公众号,是如何玩转SVG擦出/刷新/填涂特效?|E2.COOL黑科技SVG编辑器

动画类型 width/height animation 通过擦出/刷新等效果&#xff0c;实现产品的多图轮播、细节对比、文字高亮——这是 Apple 公众号特别偏爱的一种 SVG 交互设计方式。那么它的技术本质是什么&#xff1f;Apple 的编辑又是如何持续创新应用在 SVG 图文内的&#xff1f;本期我…

【Python】谷歌浏览器总是自动更新,使用selenium跟chromedriver版本不匹配怎么办?

我发现&#xff0c;我的电脑对谷歌浏览器的禁止自动更新无效&#xff0c;哪怕是在任务计划程序里&#xff0c;禁止谷歌浏览器更新&#xff0c;也没有用。而且有时候点开右上角的三个点&#xff0c;也会自动更新版本。 但是往往chromedriver的更新版本更不上浏览器的版本哇&…

SQL Server数据库简单的事务日志备份恢复

模拟数据库备份恢复过程 1.基础操作 1.创建TestDB数据库&#xff0c;并添加数据 USE [master] GO CREATE DATABASE TestDB CONTAINMENT NONE ON PRIMARY ( NAME NTestDB, FILENAME ND:\TestDB.mdf , SIZE 8192KB , MAXSIZE UNLIMITED, FILEGROWTH 65536KB ) LOG ON ( …

前端开发人员都必须知道的 7 个 Vue3 组件库!

Vue.js 是一个流行的 JavaScript 框架&#xff0c;它以其易用性和灵活性吸引了大量开发人员。 随着 Vue 3 的发布&#xff0c;生态系统也迎来了新的变化和增强。 本文将介绍每个前端开发人员都必须知道的 7 个 Vue 3 组件库&#xff0c;并提供详细步骤、代码示例和相关图片链…

编译原理/软件工程核心概念-问题理解

目录 1.程序的编译执行过程 2.指针和引用的区别 3.堆和栈的区别 4.最熟悉的编程语言- Python&#xff1a;介绍PyTorch和TensorFlow框架 5.C与C的区别 6.软件工程是什么&#xff1f; 7.简述瀑布模型 8.敏捷开发方法是什么&#xff1f;它与瀑布模型相比有哪些优势和劣势 1…

Python 数学建模——高斯核密度估计

文章目录 前言原理代码实例scipy 实现seaborn 实现 前言 高斯核密度估计本是一种机器学习算法&#xff0c;在数学建模中也可以发挥作用。本文主要讨论用它来拟合变量的概率密度&#xff0c;获得概率密度函数 f ( x ) f(x) f(x)。 原理 已知一个连续型随机变量 X X X 的一系列…

实战千问2大模型第三天——Qwen2-VL-7B(多模态)视频检测和批处理代码测试

画面描述:这个视频中,一位穿着蓝色西装的女性站在室内,背景中可以看到一些装饰品和植物。她双手交叉放在身前,面带微笑,似乎在进行一场演讲或主持活动。她的服装整洁,显得非常专业和自信。 一、简介 阿里通义千问开源新一代视觉语言模型Qwen2-VL。其中,Qwen2-VL-72B在大…

Kubernetes部署(haproxy+keepalived)高可用环境和办公网络打通

HAProxy Keepalived 部署高可用性入口&#xff1a; 部署两台或多台节点运行 HAProxy 作为负载均衡器。使用 Keepalived 实现 VIP&#xff08;虚拟 IP&#xff09;&#xff0c;为 HAProxy 提供高可用性。Keepalived 会监控 HAProxy 的状态&#xff0c;如果主节点失效&#xff0…

再次进阶 舞台王者 第八季完美童模全球赛荣耀大使【殷淑窈】赛场秀场超燃合集!

7月20-23日&#xff0c;2024第八季完美童模全球总决赛在青岛圆满落幕。在盛大的颁奖典礼上&#xff0c;一位才能出众的少女——殷淑窈&#xff0c;迎来了她舞台生涯的璀璨时刻。 荣耀大使——殷淑窈&#xff0c;以璀璨童星之姿&#xff0c;优雅地踏上完美童模盛宴的绚丽舞台&am…

51单片机应用开发---二进制、十六进制与单片机寄存器之间的关系(跑马灯实例)

实现目标 1、掌握二进制与十六进制之间的转换 2、掌握单片机寄存器与二进制、十六进制之间的转换 一、二进制与十六进制之间的转换 1、二进制 二进制&#xff08;binary&#xff09;&#xff0c; 是在数学和数字电路中以2为基数的记数系统&#xff0c;是以2为基数代表系统…

Java面试篇基础部分-Java中的集合类

Java集合是面试中经常被问到的一块内容,很多人在这个地方被面试官吊打。Java集合类被定义在java.util包中,主要有四种集合,分别是List、Queue、Set和Map,每种集合分类如下图所示 List集合 List是一种在开发中比较常用的集合类,作为有序的Collection的典范,分别有如下的…

股指期货的指数一直贴水是什么意思?

在投资的世界里&#xff0c;股指期货是一个既复杂又充满机会的领域。而“股指期货贴水”这一现象&#xff0c;更是让不少投资者感到困惑。今天&#xff0c;我们就用大白话&#xff0c;来详细解释一下股指期货贴水到底是什么意思。 一、什么是股指期货&#xff1f; 首先&#…

ppt一键生成软件免费版有哪些?职场小白看这里

俗话说得好&#xff1a;时间就是金钱&#xff0c;一款好用且高效的工具无疑能让我们的工作事半功倍。 特别是经常需要制作ppt的朋友&#xff0c;拥有ppt一键生成软件免费工具可以帮你们更高效的完成工作&#xff0c;将精力投入到其他事项去。 因此&#xff0c;今天这篇文章找…