Qt 添加MySQL驱动教程 以及 操作数据库(增删查改)

这篇具有很好参考价值的文章主要介绍了Qt 添加MySQL驱动教程 以及 操作数据库(增删查改)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
使用MySQL数据库前我们必须添加MySQL驱动,有了驱动我们才能连接数据库,连接数据库成功后才能操作数据库(增删查改)。
Qt 添加MySQL驱动教程 如下(本人亲测成功版):

https://download.csdn.net/download/qq_42432673/88093467

在数据库中创建表,表结构如下:
Qt 添加MySQL驱动教程 以及 操作数据库(增删查改),Qt,数据库,qt,mysql
现在驱动已经引入完成,数据库表也创建好了,下面我们开始写代码:

引入模块:

QT += core gui sql

mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDebug>

#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    
    // 连接数据库
    void connectDataBase();
    // 查询操作
    void search();
    // 插入操作
    void insert();
    // 修改操作
    void update();
    // 删除操作
    void deleteData();
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // 连接数据库
    connectDataBase();
    // 查询操作
    search();
    // 插入操作
    insert();
    // 修改操作
    update();
    // 删除操作
    deleteData();
}

MainWindow::~MainWindow()
{
    delete ui;
}
// 连接数据库
void MainWindow::connectDataBase()
{
    // 数据库类型
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    // 数据库主机地址
    db.setHostName("127.0.0.1"); 
    // 数据库用户名
    db.setUserName("root");
    // 数据库密码
    db.setPassword("123456");
    // 数据库名称
    db.setDatabaseName("practice");
    // 打开数据库
    if(false == db.open())
    {// 数据库打开失败
        qDebug()<<"数据库连接失败!!!";
        qDebug()<<db.lastError().text();
    }
    else
    {// 数据库打开成功
        qDebug()<<"success...";
    }
}
// 查询操作
void MainWindow::search()
{
    QString sql = "select * from user";
    QSqlQuery query;
    // 执行 sql 语句
    query.exec(sql);
    // 遍历完为 false
    while(query.next())
    {
        // 使用下标的方式查询表中数据
        qDebug()<<query.value(0).toInt()<<query.value(1).toString()<<query.value(2).toInt();
        // 使用字段的方式查询表中数据
        qDebug()<<query.value("id").toInt()<<query.value("name").toString()<<query.value("age").toInt();
    }
}
// 插入操作
void MainWindow::insert()
{
    // 注意:插入的主键(id)不能重复,否则插入失败
    QString sql = "insert into user(id,name,age) values(3,'小王',20)";
    QSqlQuery query;
    if(query.exec(sql))
    {
        // 数据插入成功
        qDebug()<<"insert success...";
    }
    else
    {
        // 数据插入失败
        qDebug()<<query.lastError().text();
    }
}
// 修改操作
void MainWindow::update()
{
    QString sql = "update user set name = '小张',age = 100 where id = 1";
    QSqlQuery query; 
    query.exec(sql);
}
// 删除操作
void MainWindow::deleteData()
{
    QString sql = "delete from user where id = 2";
    QSqlQuery query;
    query.exec(sql);
}

除了上面简单的增删查改以外,还可以多语句执行:

// 多语句执行
// 每条语句用分号隔开就可以同时执行多条语句
// 同时对表格进行增加、删除和更新操作
void MainWindow::multiQuery()
{
    QString sql = "insert into user(id,name,age) values(4,'小王',20);delete from user where id = 2;update user set name = '小张',age = 100 where id = 1;";
    QSqlQuery query;
    if(query.exec(sql))
    {
        // 执行成功
        qDebug()<<"multiQuery() success...";
    }
    else
    {
        // 执行失败
        qDebug()<<query.lastError().text();
    }
}

批处理执行(方法一):

// 批处理 方法一
// addBindValue()绑定值的顺序需要与 id、name、age 的顺序一致
void MainWindow::batchQuery()
{
    QSqlQuery query;
    // 待输入的值用通配符 “?” 代替
    query.prepare("insert into user(id,name,age) values(?,?,?)");
    
    // 创建 id 列表
    QVariantList idList;
    idList << 10 << 11 << 12;
    // 完成第一个 ? 的绑定
    query.addBindValue(idList); 
    
    // 创建 name 列表
    QVariantList nameList;
    nameList << "小明" << "小米" << "小艾";
    //完成第二个 ? 的绑定
    query.addBindValue(nameList);
    
    // 创建 age 列表
    QVariantList ageList;
    ageList << 18 << 19 << 20;
    // 完成第三个 ? 的绑定
    query.addBindValue(ageList);
    
    // 执行批处理
    query.execBatch();
}

批处理执行(方法二):

// 批处理 方法二
// 使用自定义的名称来完成绑定,这时绑定顺序可以自己决定
void MainWindow::batchQuery2()
{
    QSqlQuery query;
    // :id :name :age 是自定义的
    query.prepare("insert into user(id,name,age) values(:id,:name,:age)");
    
    // 创建 id 列表
    QVariantList idList;
    idList << 20 << 21 << 22;
    // 完成 :id 的绑定
    query.bindValue(":id",idList);
    
    // 创建 name 列表
    QVariantList nameList;
    nameList << "小明" << "小米" << "小艾";
    // 完成 :name 的绑定
    query.bindValue(":name",nameList);
    
    // 创建 age 列表
    QVariantList ageList;
    ageList << 18 << 19 << 20;
    // 完成 :age 的绑定
    query.bindValue(":age",ageList);

    //执行批处理
    query.execBatch();
}

一定要注意,插入数据的时候,主键id不能重复,否则插入失败,切记!!!文章来源地址https://www.toymoban.com/news/detail-605465.html

到了这里,关于Qt 添加MySQL驱动教程 以及 操作数据库(增删查改)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT连接MySql数据库失败,编译驱动问题,最详细解决办法

    各位读者你们好🔥 此篇是本专栏的第一篇,本专栏专门收录在学习过程中遇到的环境配置、软件问题等开发环境方面的问题。🚀🚀🚀 刚刚转阴就迫不及待的赶紧写一篇博客来解决一直落下的一个问题: 关于QT和MySql数据库的连接问题😷(在本人经过整整三天的无限踩坑之

    2024年02月05日
    浏览(56)
  • Ubuntu下QT操作Mysql数据库

    本篇总结一下一下Ubuntu下QT操作Mysql数据库。 目录 1. 启动Mysql数据库服务器 2.查看QT支持的数据库驱动 3.连接数据库 4. 增加表和记录 5. 删除记录 6. 修改记录 7. 查询记录 8.完整代码和运行效果 常见错误总结: (1) 数据库服务没启动报错信息 (2) 有QMYSQL驱动,连接数据缺失败 /

    2024年02月09日
    浏览(47)
  • Qt连接MySQL数据库最详细的教程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 原文链接:https://blog.csdn.net/joey_ro/article/details/105411135 被Qt连接数据库折磨了三天之后终于连接成功了,记录一下希望对看到的人有所帮助。 当然要在.pro文件中添加一行引入 如果显示: 那么恭喜你太幸

    2024年01月21日
    浏览(49)
  • Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…   mysql驱动版本msvc2015x32版本调

    2023年04月26日
    浏览(87)
  • Qt连接MySQL数据库(保姆级成功版教程)

    VIP通道可以关注我,私信我,直接给两个动态库,直接起飞。 1、安装Qt时勾选sources 2、配置path环境变量 ① 此电脑-属性-高级系统设置-环境变量 ② 双击path-右上角新建 ③把这两个路径添加进去,最后确定 3、编译mysql驱动(在Qt打开mysql.pro文件) 1)在这条路径中D:QT5.14.25.1

    2024年02月04日
    浏览(45)
  • MySQL数据库---库基本操作 以及 表结构的操作(DDL)

    目录 前言 一.数据库的操作 1.1显示当前数据库 1.2创建数据库 1.3使用数据库  1.4删除数据库  二.数据类型 2.1数值类型 2.2字符串类型 2.3日期类型 三.数据表的操作  3.1 创建表结构。  3.2查看数据库中拥有的数据表  3.3查看指定的表结构   3.4修改表结构   3.5删除表结构  

    2024年02月09日
    浏览(67)
  • MySQL数据库概念、管理以及SQL语句的基本命令操作

    数据(data) 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一格式进行存储(记录可以看成一条记录) 表 将不同的记录组织在一起 用来存储具体数据 记录:行 字段(属性):列 以行+列的形式就组成了表(数据存储在表中) 数

    2024年02月08日
    浏览(71)
  • 【MySQL数据库】--- 初识数据库以及MySQL数据库在Linux云服务器下载(详细教程)

    🍎 博客主页:🌙@披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 MYSQL数据库 🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙 🍉一起加油,去追寻、去成为更好的自

    2024年02月03日
    浏览(60)
  • 【MySQL数据库】--- 初始数据库以及MySQL数据库在Linux云服务器下载(详细教程)

    🍎 博客主页:🌙@披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 MYSQL数据库 🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙 🍉一起加油,去追寻、去成为更好的自

    2023年04月24日
    浏览(72)
  • 数据库系统原理及MySQL应用教程实验四MySQL数据库表数据的查询操作

    1.掌握SELECT 语句的基本语法格式。 2.掌握SELECT 语句的执行方法。 3.掌握SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 验证性实验:在公司的部门员工管理数据库的bumen表和yuangong表上进行信息查询。 设计性试验:将在student表和score表上进行查询。 ( 一 ) 验证性实验 在

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包