IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Qt连接MySQL数据库 -> 正文阅读

[大数据]Qt连接MySQL数据库

我用的是Qt5.12与MySQL8.0的版本
第一步
在Qt的安装目录下找到源码文件夹,找到MySQL的插件文件夹,例如:
D:\qt\5.12.0\Src\qtbase\src\plugins\sqldrivers\mysql
找到mysql.pro这一个Qt项目文件,双击打开。

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)

具体更改为:
将第6行注释掉

#QMAKE_USE += mysql

添加

win32:LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql

INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)

DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)

加$$quote是因为博主MySQL的安装路径中有空格,如果没有空格可以不加;第一个地址是你MySQL安装的位置中lib的位置,第二、三个是你MySQL中lib文件夹的上一级;

编译之后,会出现这个界面,表明你已经成功了,关闭窗口。
在这里插入图片描述
第二步
编译此项目,当项目编译完成之后,在Qt文件夹的同级目录下寻找plugins文件夹打开sqldrivers文件夹,例如:D:\plugins\sqldrivers;
在这里插入图片描述
将上面的文件复制到Qt的编译器的插件目录中,例如:D:\qt\5.12.0\mingw73_64\plugins\sqldrivers
在这里插入图片描述
第三步
将MySQL的动态库复制到Qt的bin目录下:
首先,我们在Mysql中找到lib文件夹:
例如:C:\Program Files\MySQL\MySQL Server 8.0\lib,找到libmysql.dll

将其复制到Qt的bin目录中:例如:D:\qt\5.12.0\mingw73_64\bin,注意编译器不要选错;
在这里插入图片描述
到这里配置就完成了,可以进行MySQL连接的测试。

第四步
调试MySQL是否能在Qt中连接:
只需要把连接的MySQL库改为本地的即可。
.pro修改代码

QT       += core gui sql

.cpp文件部分代码,注意自家添加头文件

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("数据库名");
db.setUserName("用户名");
db.setPassword("密码");
bool ok = db.open();
if (ok){
    QMessageBox::information(this, "infor", "success");
}
else {
    QMessageBox::information(this, "infor", "open failed");
    qDebug()<<"error open database because"<<db.lastError().text();
}
//解决中文乱码问题
db.exec("SET NAMES 'UTF-8'");

qt通过ODBC操作数据库
1)查询数据
代码:

//ODBC查询数据
QSqlQuery result = db.exec("查询语句");
while(result.next()){
    qDebug()<<"user_id:"<<result.value("属性0").toInt();
    qDebug()<<"name:"<<result.value("属性1").toString()<<endl;
}

2)插入、更新、删除数据

//ODBC插入数据
result.clear();
bool result_successed = result.exec("插入/更新/删除语句");

if(result_successed){
    qDebug()<<"插入成功!";
}else {
    qDebug()<<"插入失败!";
}
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:10:56  更:2022-05-08 08:12:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:52:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码