我的编程空间,编程开发者的网络收藏夹
学习永远不晚

QT的mysql(数据库)最佳实践和常见问题解答

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

QT的mysql(数据库)最佳实践和常见问题解答

涉及到数据库,首先安利一个软件Navicat Premium,用来查询数据库很方便 

QMysql驱动是Qt SQL模块使用的插件,用于与MySQL数据库进行通信。要编译QMysql驱动,您需要满足以下条件:

  • 您需要安装MySQL的客户端库和开发头文件,这些文件通常随MySQL的安装程序一起提供,或者可以从MySQL官网下载。请注意,您需要根据您的Qt架构(32位或64位)选择正确的数据库库文件。
  • 您需要获取Qt的源代码,这些代码可以从Qt官网下载。您可以选择与您的Qt版本相匹配的源代码,也可以选择最新的源代码。
  • 您需要使用qmake和make工具来编译QMysql驱动,这些工具通常随Qt的安装程序一起提供,或者可以从Qt官网下载。请注意,您需要根据您的操作系统和编译器选择正确的工具。

由于现在版本的QT的Qmysql在安装的时候没有,需要自行去编译这个dll文件出来。

编译出QMysql的相关dll文件的步骤如下:

  • 打开Qt命令提示符,进入Qt源代码目录下的qt/class="lazy" data-src/plugins/sqldrivers/mysql文件夹,例如:
F:\QT\5.12.9\class="lazy" data-src\qtbase\class="lazy" data-src\plugins\sqldrivers\mysql

然后把下面这一行代码注释掉:并且配置mysql的地址,如下面所示:

Copy

  • 运行qmake命令,指定MySQL的头文件和库文件的路径,例如:
INCLUDEPATH += "E:/mysql/mysql-5.7.27-winx64/include"DEPENDPATH += "E:/mysql/mysql-5.7.27-winx64/include"LIBS += "E:/mysql/mysql-5.7.27-winx64/lib/libmysql.lib"DESTDIR = ../mysql/mylib

Copy

  • 运行make或mingw32-make命令,根据您的编译器类型(如果是在VS环境下使用sql,那么就只需要在VS的编译器下面进行编译)选择合适的命令,例如:
mingw32-make

Copy

  • 如果编译成功,您将在当前目录下看到一个名为qsqlmysql.dll的文件,这就是QMysql插件。您需要将这个文件复制到您运行Qt应用程序时使用的Qt目录下的qt/plugins/sqldrivers文件夹中,例如:
F:\QT\5.12.9\msvc2017_64\plugins\sqldrivers

以上就是我们的准备工作:

然后就是如何在QT里面使用Qmysql功能;首先,咱们需要先引入头文件,文件如下:

#include // 连接数据库#include // 数据库连接失败打印报错语句#include // 数据库操作(增删改查)#include 

我定义了一下函数名,用来在cpp文件里面写入:

 Q_OBJECTpublic:    mysql(QWidget *parent);    ~mysql();    void insert(QString InserName,int id,QString symbol,QString value);    void insert_line(QString InserName,QString id,QString symbol,QString value,QString v,QString despoitory);    void data_connect(bool,bool);//连接数据库    void data_test_connect(QStringList);//测试能否成功连接数据库    void close_data();    void creat_table(QString TableName);//创建一个表    void update_table(QString InserName,QString id,QString key,QString value);//更新数据库    void delete_table(QString TableName,QString id);//删除数据库    void find_alltable(QString datebase);//查找所有数据路表格    void find_table_inf(QString TableName);//查询某个表中的数据    void find_table_row(QString TableName,QString row_name,QString col_name);//查询表中某一行的数据    void find_table_col(QString TableName,QString col_name);//表名,列名    void find_table_desposite(QString TableName,QString col_name);//表名,列名查询储位名

对应的函数名里面,实现的功能如下所示:

首先是连接数据库部分功能

QSettings *myini=new QSettings("info.ini", QSettings::IniFormat);//构造QSettings对象,访问ini文件        QStringList info_digitial={"digitial_type","hostname","port","database_name","user_name","password"};        QStringList s;        //设置键值对        s.clear();        myini->beginGroup("digital");        for(int i=0;ivalue(info_digitial[i]).toString());        }        myini->endGroup();        delete myini;    //输出可用数据库        qDebug()<<"available drivers:";        QStringList drivers = QSqlDatabase::drivers();        foreach(QString driver, drivers)        qDebug()<

我这里是通过读取ini文件里面存储的信息,来获得数据库的设置,主要包含有: 

定义一个QSqlDatabase 对象db,实例化它,如果能够成功connect,则会返回一个布尔值,在这里我通过这个bool值来判断,是否成功连接上数据库了。

然后就是在数据库里面创建一个table,并且想里面插入值:

    QSqlQuery query;    QString sql=QString("create table %1(订单号 text, 料号 text, 品名 text, 数量 text,储位 text);").arg(TableName);//"订单号","料号","品名","数量"    qDebug()<<"SQL"<

在表table里面插入数据的功能实现如下所示:

 QSqlQuery query;       QString str=QString("insert into %4(序号,标签,value) values(%1,'%2','%3')").arg(id).arg(symbol).arg(value).arg(InserName);       if(query.exec(str)==false)       {            qDebug() << "insert failed";            QMessageBox::warning(this,u8"数据插入错误",u8"请检查数据是否正确");       }       else       {           QMessageBox::information(this, "insert", "insert connect");            qDebug() <<"insert success";       }

更新数据的功能实现,代码部分如下所示:

    QSqlQuery query;    QString updata = QString("update %1 set  %2='%3' where 订单号='%4'").arg(InserName).arg(column).arg(value).arg(row);    qDebug()<<"--update--"<

前面我们提了如何创建数据库的table和插入数据的功能实现,下面我们就谈一谈这个数据库的删除功能的视线,代码部分,如下所示:

     QSqlQuery query;     QString sql = QString("delete from %1 where  订单号 = '%2'").arg(TableName).arg(id);     if(query.exec(sql))     {         qDebug()<<"delete success!";     }     else     {         qDebug()<<"delete failed!";     }

来源地址:https://blog.csdn.net/Helloorld_1/article/details/132297907

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

QT的mysql(数据库)最佳实践和常见问题解答

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Golang 函数中错误处理的最佳实践和常见问题

在 go 函数中处理错误的最佳实践包括尽早返回错误、始终检查错误、使用有意义的错误消息和考虑使用包裹错误。常见的错误处理问题包括 goroutine 中的错误处理、自定义类型错误、未检查的错误、忽略错误和错误类型转换。最佳实践的实战案例演示
Golang 函数中错误处理的最佳实践和常见问题
2024-05-23

解析HTML响应式布局的最佳实践和常见问题

HTML响应式布局的最佳实践和常见问题解析简介:在当代互联网时代,移动设备的普及与发展,给用户提供了更多的移动端浏览网页的需求。为了解决不同屏幕尺寸的设备上能够有更好的用户体验,响应式布局成为了前端开发中重要的技术之一。本文将介绍HTM
解析HTML响应式布局的最佳实践和常见问题
2024-01-29

Go语言编程的最佳实践和常见问题解决方案

在当今互联网高速发展的时代,编程语言的选择至关重要。Go语言作为一种快速、高效、易于学习和使用的编程语言,受到了越来越多开发者的青睐。然而,虽然Go语言具有许多优点,但在实际开发中也会遇到一些常见问题。本文将介绍Go语言编程的最佳实践和一些
Go语言编程的最佳实践和常见问题解决方案
2024-03-01
数据库水平分割的最佳实践:避免常见陷阱
2024-02-17

Web项目部署在Tomcat上的最佳实践和常见问题解决方案

Tomcat部署Web项目的最佳实践和常见问题解决方法引言:Tomcat作为一个轻量级的Java应用服务器,在Web应用开发中得到了广泛应用。本文将介绍Tomcat部署Web项目的最佳实践和常见问题解决方法,并提供具体的代码示例,帮助读者更
Web项目部署在Tomcat上的最佳实践和常见问题解决方案
2023-12-29

数据库容灾常见问题解答:您需要了解的一切

数据库容灾是确保在发生故障或灾难时数据库保持可用和可访问性的关键。本文将回答您对数据库容灾的常见问题,并提供实用建议来帮助您保护您的数据。
数据库容灾常见问题解答:您需要了解的一切
2024-02-14

数据库OLAP常见问题解答:一站式解决你的疑惑

数据库OLAP常见问题解答,一站式解决你的疑惑!本文将为大家详细解答数据库OLAP的相关问题,包括OLAP的概念、原理、类型、应用场景以及使用技巧等。
数据库OLAP常见问题解答:一站式解决你的疑惑
2024-02-12

C#中常见的数据库连接和事务处理问题及解决方法

C#中常见的数据库连接和事务处理问题及解决方法摘要:随着互联网和信息技术的飞速发展,数据库的使用越来越广泛。作为开发人员,在编写应用程序时,数据库连接和事务处理是必不可少的部分。然而,由于各种原因,可能会出现一些常见的问题。本文将详细介绍C
2023-10-22

如何通过MySQL设计规约规避常见的数据库错误和问题?技术同学必备经验总结!

如何通过MySQL设计规约规避常见的数据库错误和问题?技术同学必备经验总结!摘要:MySQL是一种广泛使用的关系型数据库管理系统,但在实际应用中,由于设计不当、配置问题或者使用不当等原因,会出现一系列的数据库错误和问题。本文总结了一些常见的
2023-10-22

漏刻有时数据可视化大屏常见问题(9):mysql数据库.sql文件制作自动安装格式的解决方案

在数据可视化制作的过程中,数据库结构总是在不断的调整和变化中。为了给程序开发者更好的操作体验,简化操作流程,需要在程序测试完毕打包版本的时候,对数据库进行格式操作,以便完成初始化的自动安装。现就如何实现数据库自动安装格式的步骤整理如下: 导出数据 进入phpM
漏刻有时数据可视化大屏常见问题(9):mysql数据库.sql文件制作自动安装格式的解决方案
2018-07-09

编程热搜

目录