目录

一、安装驱动

(1)安装

(2)验证驱动是否安装成功

二、使用MySQL数据库

(1)单语句执行

(2)多语句执行

(3)批处理操作

方式一:addBindValue()

方式二:bindValue()

(4)查询

三、总结


一、安装驱动

(1)安装

在Qt中操作MySQL数据库首先要安装mysql的驱动文件,将MySQL下的libmusql.dll文件复制到Qt的安装路径下的bin文件夹下即可。

直接将libmysql.dll文件粘贴到此文件夹中。

(2)验证驱动是否安装成功

复制成功之后来测试一下驱动程序是否安装成功,新建一个文件,选择Qt设计师界面类,后面的操作都保持默认即可。

在新生成的.cpp文件中引入以下库

#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QString>
#include <QSqlQuery>
#include <QVariantList>

在构造函数中插入以下代码,然后点击运行,如果不弹出警告窗口则说明安装成功,否则就是失败了。

//添加一个数据库QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");    //括号内要写出数据库的类型//设置数据库db.setHostName("127.0.0.1"); //设置数据库的主机ip//设置数据库的用户名db.setUserName("root");//设置数据库的密码db.setPassword("123456");    //这个就是安装MySQL时设置的密码//设置数据库的名字db.setDatabaseName("aaa2");//打开数据库(已经安装过mysql驱动了)if(db.open()==false){QMessageBox::warning(this,"waring",db.lastError().text());}

二、使用MySQL数据库

(1)单语句执行

首先创建一个QString对象sql,将要执行的语句写在 sql中,然后创建QSqlQuery类的对象query,调用其exec()函数执行sql中的代码。

    QString sql = "insert into student (id,name,age,math) values (1,'kaw',20,97)";  //书写想要执行的语句QSqlQuery query; //创建一个QSqlQuery对象query.exec(sql);    //执行mysql语句

(2)多语句执行

在sql中,每条语句用分号隔开就可以同时执行多条语句了。下面同时对表格进行增加、删除和更新操作。

    QString sql = "insert into student (id,name,age,math) values (13,'kaw',20,97);delete from student where id=2;update student set name='sdd',math=100 where id=10;";QSqlQuery query;    //创建一个QSqlQuery对象query.exec(sql);    //执行mysql语句

(3)批处理操作

方式一:addBindValue()

在query.prepare()中输入自己想要执行的语句,其中待输入的值用“?”代替,在这里“?”就是通配符。后面再用idList、nameList、ageList和mathList添加自己想要设置的值。注意,addBindValue()绑定值的顺序需要与id、name、age、math的顺序一致。

    QSqlQuery query;query.prepare("insert into student (id,name,age,math) values (?,?,?,?)");  //书写语句模型//添加绑定数据QVariantList idList;    //创建一个id列表idList << 15<<16<<17;query.addBindValue(idList); //完成第一个?的绑定QVariantList nameList;nameList << "ddd"<<"eee"<<"jjj";query.addBindValue(nameList);   //完成第二个?的绑定QVariantList ageList;ageList << 25<<24<<23;query.addBindValue(ageList);    //完成第三个?的绑定QVariantList mathList;mathList << 90<<89<<90;query.addBindValue(mathList);   //完成第四个?的绑定//执行批处理query.execBatch();

方式二:bindValue()

直接用自定义的名称来完成绑定,这时绑定顺序可以自己决定。

 QSqlQuery query;query.prepare("insert into student (id,name,age,math) values (:id,:name,:age,:math)");  //:id之类的名字时自定义的 自己方便就好//添加绑定数据QVariantList idList;    //创建一个id列表idList << 18<<19<<20;query.bindValue(":id",idList); //完成:id的绑定QVariantList nameList;nameList << "ddd"<<"eee"<<"jjj";query.bindValue(":name",nameList);   //完成:name的绑定QVariantList ageList;ageList << 25<<24<<23;query.bindValue(":age",ageList);    //完成:age的绑定QVariantList mathList;mathList << 90<<89<<90;query.bindValue(":math",mathList);   //完成:math的绑定//执行批处理query.execBatch();

(4)查询

要查询的表为:

value后的值可以是索引,也可以是列名。取出后需要将其转为对应的数据类型。

 //查询操作QSqlQuery query;query.exec("select * from student");while(query.next()){qDebug()<<query.value(0).toInt()<<query.value("name").toString().toUtf8().data()<<query.value(2).toInt()<<query.value(3).toInt();   }

查询结果:

三、总结

啊啊啊啊,自己太菜了,看啥啥不会真是麻了。今天刚开始接触MySQL数据库,感觉就是操作很方便、功能很强大、难度也不下。

在Qt中操作MySQL数据库相关推荐

  1. mysql设置数据库显示汉字_在CMD中操作mysql数据库出现中文乱码解决方案

    百度了一下..有说将cmd字符编码用chcp命令改为65001(utf8字符编码),可这样之后根本无法输入中文,查询出的中问结果依旧乱码 . 其实,只要保证cmd客户端和MySQL两者编码一致即可. ...

  2. 在Asp.net core 项目中操作Mysql数据库

    工程环境 : win10+asp.net core 2.1 + vs2017 步骤: 1 在vs中新建asp.net core  项目 2 在Nuget中为项目添加第三方包microsoft.visu ...

  3. C++Qt开发——操作MySQL数据库

    Qt SQL Qt中的Qt SQL模块提供了对数据库的支持,模块中类可分为三层:驱动层,sql接口层,用户层. 驱动层:(QSqlDriver,QSqlDriverCreator,QSqlDriver ...

  4. Qt中操作SQLite数据库

    0.前言 SQLite是一款开源.轻量级.跨平台的数据库,无需server,无需安装和管理配置.它的设计目标是嵌入式的,所以很适合小型应用,也是Qt应用开发种常用的一种数据库. 1.驱动 Qt SQL ...

  5. 在QT中使用MySQL数据库

    前篇已经写了如何使用QT链接sqlite和SQLServer,见点击打开链接 本次主要说明如何通过QT链接MySQL数据库: 首先确保数据库中存在Mysql的驱动,详见QT安装目录中的plugins/ ...

  6. python中操作mysql数据库CRUD(增、删、改、查)

    一.插入操作 #coding:utf8 import pymysql.cursors #连接数据库 conn=pymysql.Connect(user="root",passwor ...

  7. 一直用PDO,PHP中操作MYSQL数据库常用函数还记得不

    1.mysql_connect()-建立数据库连接   格式:  resource mysql_connect([string hostname [:port] [:/path/to/socket] ...

  8. python mysql数据库_Python3中操作MySQL数据库

    0.安装 pip install pymysql 1.打开数据库连接 import pymysql db = pymysql.connect(host="数据库地址", user= ...

  9. windows系统中操作mysql数据库

    MySQL安装1 MySQL安装2 MySQL安装过程中提示计算机丢失vcruntime140_1.dll Microsoft Visual C++ 官网 MySQL语句使用 输入mysql语句 sh ...

最新文章

  1. TypeScript 初识
  2. ----------------学习进度表---------------------------------
  3. c++ 链表_算法学习笔记 - 链表 - 单链表的粗糙实现
  4. 关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)
  5. websocket后台推送数据
  6. 四天人工智能 python入门体验课_百度深度学习7天打卡营,用Python+AI识别“青你2”小姐姐的高颜值...
  7. java枚举类型转换为Struts2的select的数据
  8. 《大话》之 三大工厂
  9. SQL Server 游标
  10. BusHound详细使用说明
  11. C#学习笔记之线程安全
  12. python打印列表中指定元素的所有下标(5种方法)
  13. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-22期...
  14. 网站调用服务器字体,网站调用字体库
  15. windows操作系统杂谈
  16. Google Pay 初步集成
  17. Linux终端、关机、ldd、ldconfig等系统命令
  18. UGUI实现Joystick
  19. QT 之 编译错误总结(2)
  20. Android 11 安装EdXposed + Magisk框架

热门文章

  1. 基于Simulink的汽车行驶速度PID控制系统仿真
  2. windows 命令行拷贝文件夹
  3. 主管护士需要考计算机和英语吗,主管护师需要考职称英语和计算机吗
  4. [转载]如何脑洞大开地使用OneNote_习惯累积沉淀_新浪博客
  5. ICCV 2021 | 多模态视频分析与推理比赛来了!行为识别、Re-ID、VQA等四项子任务...
  6. 国际开源社区OW2成立快应用兴趣小组,助推快应用生态发展
  7. 微信编辑器文字格式如何设置?
  8. 【学海无涯】Java成神之路
  9. (文献阅读笔记)基于雾计算提出的一种交通路况监测的一种隐私保护协议
  10. 中小型企业建站推荐 | 阿里云自营建站服务