Qt和MySQL的连接

具体视频的教程

视频教程

我的文章是做一下补充的

流程:

第一点你要确保你的数据库的位数,如果你数据库位数的是32位,mingw编译的时候就需要选择的是32位**(在下面会提到)**

去到所在的文件在这里插入图片描述
点击.pro文件进行编译驱动

在这里插入图片描述
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)INCLUDEPATH+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/include)"           #MySQL服务器的include目录
LIBS+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib/libmysql.lib)"#MySQL服务器的libmysql.lib文件路径DESTDIR = "../mysql/build"   #自定义保存驱动的文件夹#PLUGIN_CLASS_NAME = QMYSQLDriverPlugin  # 把这个放到前面去了就可以了
#include(./qsqldriverbase.pri)#在工程文件里用quote把路径包起来,就会忽略空格的

qsqldriverbase.pri

QT  = core core-private sql-private# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)include(./qsqldriverbase.pri)PLUGIN_TYPE = sqldrivers
load(qt_plugin)DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

$$quote()的语法是为了去掉路径中的空格

INCLUDEPATH+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/include)"           #MySQL服务器的include目录
LIBS+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib/libmysql.lib)"

然后编译

在这里插入图片描述
在这里插入图片描述
虽然这里会报错,但是没有关系
在这里插入图片描述
这个是编译的目录结构

然后我把生成的编译成的文件输出到build里面去
在这里插入图片描述

需要拷贝一些文件到目录里

第一个需要做的 !!!

需要编译生成的把这个放到编译器里去
在这里插入图片描述

第二个 !!!

需要把MySQL的驱动文件放到编译器的bin目录里去

在这里插入图片描述

在这里插入图片描述

测试连接mysql的代码


#include <QtWidgets/QApplication>
#include <QtSql/QSqlDatabase>	// 连接数据库
#include <QtSql/QSqlError>		// 数据库连接失败打印报错语句
#include <QtSql/QSqlQuery>		// 数据库操作(增删改查)
#include <qmessagebox.h>
#include <QDebug>
int main(int argc, char *argv[])
{QApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("127.0.0.1");db.setPort(3306);db.setDatabaseName("test");db.setUserName("root");              //用户名db.setPassword("123456");            //密码 如果为空可以删除变为空字符串bool ok = db.open();if (ok){qDebug() << "连接成功" ;}else{qDebug() << "连接失败" ;}return a.exec();
}

原理总结:划重点!!!!!!

1、Qt中没有自带的mysql数据库插件 qsqlmysql.dll 与 qsqlmysql.dll,需要到自带的mysql.pro中自行编译。

2、需要把生成mysql动态库拷贝至Qt编译器的bin目录下

如果有疑问请在评论区留言

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

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

相关文章

React | 再战Redux

✨ 个人主页&#xff1a;CoderHing &#x1f5a5;️ React.js专栏&#xff1a;React.js 再战Redux &#x1f64b;‍♂️ 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f4ab; 系列专栏&#xff1a;吊打面试官系列 16天学会Vue 7天学会微信小程序 Node专栏…

【C++11】可变参数的函数模板 的 定义 和 应用练习

文章目录 定义常见应用模板参数包展开可变参数模板类可变参数模板函数重载 练习打印任意数量的参数将任意数量的参数合并为一个字符串解包元组&#xff08;Tuple Unpacking&#xff09; emplace_back和 push_back 的比较实例 定义 可变参数模板&#xff08;Variable-length ar…

springcloud+docker+k8s发布安装第三方插件脚本

Dockerfile 安装第三方依赖插件软件 &#xff0c;以及构建镜像 #基础镜像&#xff0c;如果本地仓库没有&#xff0c;会从远程仓库拉取 openjdk:8 FROM docker.io/centos:centos7 #暴露端口 EXPOSE 9311 # 避免centos中文乱码 ENV LANG en_US.utf8 #容器中创建工作目录 WORKDIR …

MySQL的存储引擎与基本使用讲解

目录 一、前言 1.MySQL的介绍 二、存储引擎 1.什么是存储引擎 2.常见存储引擎 2.1.InnoDB(MySQL默认引擎) 2.1.1.四种隔离级别 2.2.MyISAM存储引擎 2.3.Memory存储引擎 3.ACID事务 三、CRUD操作 1.插入数据 2.查询数据 3.修改数据 4.删除数据 四、数据库 1.默认…

Matlab 校正镜头畸变图像

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 生活中一些针孔相机会给图像带来严重的失真,这主要是由于硬件和环境的因素所示导致的,其中主要的两种畸变是径向畸变和切向畸变。 径向畸变会导致直线看起来弯曲,即点距离图像中心越远,径向畸变就越大。例如,下…

RS485信号协议

在电子行业中&#xff0c;信号协议有很多&#xff0c;包括I2C&#xff0c;SPI&#xff0c;USB&#xff0c;UART&#xff0c;RS485等等&#xff0c;每个协议都有自己的特点和应用场景。 其中的RS485协议就是一种在电路板设计中非常常见的协议&#xff0c;是美国电子工业协会&…

k8s1.19使用ceph15 rbd块存储

一、ceph集群操作 #创建rbd #创建存储池,指定pg和pgp的数量, pgp是对存在于pg的数据进行组合存储,pgp通常等于pg的值 # 创建存储池 ceph osd pool create kubernetes 128 128#对存储池启用 RBD 功能 ceph osd pool application enable kubernetes rbd#通过 RBD 命令对存储池…

【微信小程序开发】第 9 课 - 小程序的协同工作和发布

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、协同工作 1.1、了解权限管理需求 1.2、了解项目成员的组织结构 1.3、小程序的开发流程 2、小程序成员管理 2.1、成员管…

解决uni-app微信小程序底部输入框,键盘弹起时页面整体上移问题

存在问题 做了一个记录页面&#xff08;类似单方聊天页&#xff09;&#xff0c;输入框在底部&#xff1b;当弹出键盘时&#xff0c;页面整体上移&#xff0c;页面头信息会消失不见 需要实现效果&#xff1a; 比如一个记录页面&#xff0c;需要在键盘弹出时&#xff1a; 底…

还在用策略模式解决 if-else?Map+函数式接口方法才是YYDS!

本文介绍策略模式的具体应用以及Map函数式接口如何 “更完美” 的解决 if-else的问题。 需求 最近写了一个服务&#xff1a;根据优惠券的类型resourceType和编码resourceId来 查询 发放方式grantType和领取规则 实现方式&#xff1a; 根据优惠券类型resourceType -> 确定查…

数据结构 | 二叉排序树

一、数据结构定义 /* 二叉排序树 */ typedef int TreeType; typedef struct BSTNode {TreeType data;struct BSTNode* lchild, * rchild; }*BSTree, BSTNode;二、方法概览 BSTNode* CreateTreeNode(TreeType data); // 创建二叉树结点 BSTNode* InsertTree(TreeType data, BS…

5个网站帮你找到免费优质的视频素材

5个免费可商用视频素材网站&#xff0c;建议收藏&#xff01; 潮点视频 https://shipin520.com/shipin-mb/all-def-267-all-all-all-all-all-0-1.html?from_code2510 潮点视频是一个提供优质高清、无水印的视频素材网站&#xff0c;站内有大量的AE模板、PR模板、实拍素材、视…