国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Qt 添加MySQL驅(qū)動教程 以及 操作數(shù)據(jù)庫(增刪查改)

這篇具有很好參考價值的文章主要介紹了Qt 添加MySQL驅(qū)動教程 以及 操作數(shù)據(jù)庫(增刪查改)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:
使用MySQL數(shù)據(jù)庫前我們必須添加MySQL驅(qū)動,有了驅(qū)動我們才能連接數(shù)據(jù)庫,連接數(shù)據(jù)庫成功后才能操作數(shù)據(jù)庫(增刪查改)。
Qt 添加MySQL驅(qū)動教程 如下(本人親測成功版):

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

在數(shù)據(jù)庫中創(chuàng)建表,表結(jié)構(gòu)如下:
Qt 添加MySQL驅(qū)動教程 以及 操作數(shù)據(jù)庫(增刪查改),Qt,數(shù)據(jù)庫,qt,mysql
現(xiàn)在驅(qū)動已經(jīng)引入完成,數(shù)據(jù)庫表也創(chuàng)建好了,下面我們開始寫代碼:

引入模塊:

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();
    
    // 連接數(shù)據(jù)庫
    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);
    // 連接數(shù)據(jù)庫
    connectDataBase();
    // 查詢操作
    search();
    // 插入操作
    insert();
    // 修改操作
    update();
    // 刪除操作
    deleteData();
}

MainWindow::~MainWindow()
{
    delete ui;
}
// 連接數(shù)據(jù)庫
void MainWindow::connectDataBase()
{
    // 數(shù)據(jù)庫類型
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    // 數(shù)據(jù)庫主機(jī)地址
    db.setHostName("127.0.0.1"); 
    // 數(shù)據(jù)庫用戶名
    db.setUserName("root");
    // 數(shù)據(jù)庫密碼
    db.setPassword("123456");
    // 數(shù)據(jù)庫名稱
    db.setDatabaseName("practice");
    // 打開數(shù)據(jù)庫
    if(false == db.open())
    {// 數(shù)據(jù)庫打開失敗
        qDebug()<<"數(shù)據(jù)庫連接失?。。。?;
        qDebug()<<db.lastError().text();
    }
    else
    {// 數(shù)據(jù)庫打開成功
        qDebug()<<"success...";
    }
}
// 查詢操作
void MainWindow::search()
{
    QString sql = "select * from user";
    QSqlQuery query;
    // 執(zhí)行 sql 語句
    query.exec(sql);
    // 遍歷完為 false
    while(query.next())
    {
        // 使用下標(biāo)的方式查詢表中數(shù)據(jù)
        qDebug()<<query.value(0).toInt()<<query.value(1).toString()<<query.value(2).toInt();
        // 使用字段的方式查詢表中數(shù)據(jù)
        qDebug()<<query.value("id").toInt()<<query.value("name").toString()<<query.value("age").toInt();
    }
}
// 插入操作
void MainWindow::insert()
{
    // 注意:插入的主鍵(id)不能重復(fù),否則插入失敗
    QString sql = "insert into user(id,name,age) values(3,'小王',20)";
    QSqlQuery query;
    if(query.exec(sql))
    {
        // 數(shù)據(jù)插入成功
        qDebug()<<"insert success...";
    }
    else
    {
        // 數(shù)據(jù)插入失敗
        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);
}

除了上面簡單的增刪查改以外,還可以多語句執(zhí)行:

// 多語句執(zhí)行
// 每條語句用分號隔開就可以同時執(zhí)行多條語句
// 同時對表格進(jìn)行增加、刪除和更新操作
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))
    {
        // 執(zhí)行成功
        qDebug()<<"multiQuery() success...";
    }
    else
    {
        // 執(zhí)行失敗
        qDebug()<<query.lastError().text();
    }
}

批處理執(zhí)行(方法一):

// 批處理 方法一
// addBindValue()綁定值的順序需要與 id、name、age 的順序一致
void MainWindow::batchQuery()
{
    QSqlQuery query;
    // 待輸入的值用通配符 “?” 代替
    query.prepare("insert into user(id,name,age) values(?,?,?)");
    
    // 創(chuàng)建 id 列表
    QVariantList idList;
    idList << 10 << 11 << 12;
    // 完成第一個 ? 的綁定
    query.addBindValue(idList); 
    
    // 創(chuàng)建 name 列表
    QVariantList nameList;
    nameList << "小明" << "小米" << "小艾";
    //完成第二個 ? 的綁定
    query.addBindValue(nameList);
    
    // 創(chuàng)建 age 列表
    QVariantList ageList;
    ageList << 18 << 19 << 20;
    // 完成第三個 ? 的綁定
    query.addBindValue(ageList);
    
    // 執(zhí)行批處理
    query.execBatch();
}

批處理執(zhí)行(方法二):

// 批處理 方法二
// 使用自定義的名稱來完成綁定,這時綁定順序可以自己決定
void MainWindow::batchQuery2()
{
    QSqlQuery query;
    // :id :name :age 是自定義的
    query.prepare("insert into user(id,name,age) values(:id,:name,:age)");
    
    // 創(chuàng)建 id 列表
    QVariantList idList;
    idList << 20 << 21 << 22;
    // 完成 :id 的綁定
    query.bindValue(":id",idList);
    
    // 創(chuàng)建 name 列表
    QVariantList nameList;
    nameList << "小明" << "小米" << "小艾";
    // 完成 :name 的綁定
    query.bindValue(":name",nameList);
    
    // 創(chuàng)建 age 列表
    QVariantList ageList;
    ageList << 18 << 19 << 20;
    // 完成 :age 的綁定
    query.bindValue(":age",ageList);

    //執(zhí)行批處理
    query.execBatch();
}

一定要注意,插入數(shù)據(jù)的時候,主鍵id不能重復(fù),否則插入失敗,切記?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-605465.html

到了這里,關(guān)于Qt 添加MySQL驅(qū)動教程 以及 操作數(shù)據(jù)庫(增刪查改)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • QT連接MySql數(shù)據(jù)庫失敗,編譯驅(qū)動問題,最詳細(xì)解決辦法

    QT連接MySql數(shù)據(jù)庫失敗,編譯驅(qū)動問題,最詳細(xì)解決辦法

    各位讀者你們好?? 此篇是本專欄的第一篇,本專欄專門收錄在學(xué)習(xí)過程中遇到的環(huán)境配置、軟件問題等開發(fā)環(huán)境方面的問題。?????? 剛剛轉(zhuǎn)陰就迫不及待的趕緊寫一篇博客來解決一直落下的一個問題: 關(guān)于QT和MySql數(shù)據(jù)庫的連接問題??(在本人經(jīng)過整整三天的無限踩坑之

    2024年02月05日
    瀏覽(16)
  • Ubuntu下QT操作Mysql數(shù)據(jù)庫

    Ubuntu下QT操作Mysql數(shù)據(jù)庫

    本篇總結(jié)一下一下Ubuntu下QT操作Mysql數(shù)據(jù)庫。 目錄 1. 啟動Mysql數(shù)據(jù)庫服務(wù)器 2.查看QT支持的數(shù)據(jù)庫驅(qū)動 3.連接數(shù)據(jù)庫 4. 增加表和記錄 5. 刪除記錄 6. 修改記錄 7. 查詢記錄 8.完整代碼和運(yùn)行效果 常見錯誤總結(jié): (1) 數(shù)據(jù)庫服務(wù)沒啟動報(bào)錯信息 (2) 有QMYSQL驅(qū)動,連接數(shù)據(jù)缺失敗 /

    2024年02月09日
    瀏覽(20)
  • Qt連接MySQL數(shù)據(jù)庫最詳細(xì)的教程

    Qt連接MySQL數(shù)據(jù)庫最詳細(xì)的教程

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 原文鏈接:https://blog.csdn.net/joey_ro/article/details/105411135 被Qt連接數(shù)據(jù)庫折磨了三天之后終于連接成功了,記錄一下希望對看到的人有所幫助。 當(dāng)然要在.pro文件中添加一行引入 如果顯示: 那么恭喜你太幸

    2024年01月21日
    瀏覽(34)
  • Qt+MySql開發(fā)筆記:Qt5.9.3的msvc2017x64版本編譯MySql8.0.16版本驅(qū)動并Demo連接數(shù)據(jù)庫測試

    Qt+MySql開發(fā)筆記:Qt5.9.3的msvc2017x64版本編譯MySql8.0.16版本驅(qū)動并Demo連接數(shù)據(jù)庫測試

    若該文為原創(chuàng)文章,轉(zhuǎn)載請注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428 紅胖子網(wǎng)絡(luò)科技博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中… ??mysql驅(qū)動版本msvc2015x32版本調(diào)

    2023年04月26日
    瀏覽(50)
  • Qt連接MySQL數(shù)據(jù)庫(保姆級成功版教程)

    Qt連接MySQL數(shù)據(jù)庫(保姆級成功版教程)

    VIP通道可以關(guān)注我,私信我,直接給兩個動態(tài)庫,直接起飛。 1、安裝Qt時勾選sources 2、配置path環(huán)境變量 ① 此電腦-屬性-高級系統(tǒng)設(shè)置-環(huán)境變量 ② 雙擊path-右上角新建 ③把這兩個路徑添加進(jìn)去,最后確定 3、編譯mysql驅(qū)動(在Qt打開mysql.pro文件) 1)在這條路徑中D:QT5.14.25.1

    2024年02月04日
    瀏覽(21)
  • MySQL數(shù)據(jù)庫---庫基本操作 以及 表結(jié)構(gòu)的操作(DDL)

    MySQL數(shù)據(jù)庫---庫基本操作 以及 表結(jié)構(gòu)的操作(DDL)

    目錄 前言 一.數(shù)據(jù)庫的操作 1.1顯示當(dāng)前數(shù)據(jù)庫 1.2創(chuàng)建數(shù)據(jù)庫 1.3使用數(shù)據(jù)庫? 1.4刪除數(shù)據(jù)庫 ?二.數(shù)據(jù)類型 2.1數(shù)值類型 2.2字符串類型 2.3日期類型 三.數(shù)據(jù)表的操作 ?3.1?創(chuàng)建表結(jié)構(gòu)。 ?3.2查看數(shù)據(jù)庫中擁有的數(shù)據(jù)表 ?3.3查看指定的表結(jié)構(gòu) ??3.4修改表結(jié)構(gòu) ??3.5刪除表結(jié)構(gòu) ?

    2024年02月09日
    瀏覽(21)
  • MySQL數(shù)據(jù)庫概念、管理以及SQL語句的基本命令操作

    MySQL數(shù)據(jù)庫概念、管理以及SQL語句的基本命令操作

    數(shù)據(jù)(data) 描述事物的符號記錄 包括數(shù)字,文字、圖形、圖像、聲音、檔案記錄等 以“記錄”形式按統(tǒng)一格式進(jìn)行存儲(記錄可以看成一條記錄) 表 將不同的記錄組織在一起 用來存儲具體數(shù)據(jù) 記錄:行 字段(屬性):列 以行+列的形式就組成了表(數(shù)據(jù)存儲在表中) 數(shù)

    2024年02月08日
    瀏覽(34)
  • 【MySQL數(shù)據(jù)庫】--- 初始數(shù)據(jù)庫以及MySQL數(shù)據(jù)庫在Linux云服務(wù)器下載(詳細(xì)教程)

    【MySQL數(shù)據(jù)庫】--- 初始數(shù)據(jù)庫以及MySQL數(shù)據(jù)庫在Linux云服務(wù)器下載(詳細(xì)教程)

    ?? 博客主頁:??@披星戴月的賈維斯 ?? 歡迎關(guān)注:??點(diǎn)贊??收藏??留言 ??系列專欄:?? MYSQL數(shù)據(jù)庫 ??請不要相信勝利就像山坡上的蒲公英一樣唾手可得,但是請相信,世界上總有一些美好值得我們?nèi)σ愿?,哪怕粉身碎骨?? ??一起加油,去追尋、去成為更好的自

    2023年04月24日
    瀏覽(101)
  • 【MySQL數(shù)據(jù)庫】--- 初識數(shù)據(jù)庫以及MySQL數(shù)據(jù)庫在Linux云服務(wù)器下載(詳細(xì)教程)

    【MySQL數(shù)據(jù)庫】--- 初識數(shù)據(jù)庫以及MySQL數(shù)據(jù)庫在Linux云服務(wù)器下載(詳細(xì)教程)

    ?? 博客主頁:??@披星戴月的賈維斯 ?? 歡迎關(guān)注:??點(diǎn)贊??收藏??留言 ??系列專欄:?? MYSQL數(shù)據(jù)庫 ??請不要相信勝利就像山坡上的蒲公英一樣唾手可得,但是請相信,世界上總有一些美好值得我們?nèi)σ愿?,哪怕粉身碎骨?? ??一起加油,去追尋、去成為更好的自

    2024年02月03日
    瀏覽(23)
  • 數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗(yàn)四MySQL數(shù)據(jù)庫表數(shù)據(jù)的查詢操作

    數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗(yàn)四MySQL數(shù)據(jù)庫表數(shù)據(jù)的查詢操作

    1.掌握SELECT 語句的基本語法格式。 2.掌握SELECT 語句的執(zhí)行方法。 3.掌握SELECT 語句的?GROUP BY 和?ORDER BY 子句的作用。 驗(yàn)證性實(shí)驗(yàn):在公司的部門員工管理數(shù)據(jù)庫的bumen表和yuangong表上進(jìn)行信息查詢。 設(shè)計(jì)性試驗(yàn):將在student表和score表上進(jìn)行查詢。 ( 一 ) 驗(yàn)證性實(shí)驗(yàn) 在

    2024年02月05日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包