QT5連接MySQL實(shí)現(xiàn)增刪改查
更新時(shí)間:2022年12月28日 09:50:46 作者:音視頻開發(fā)老舅
這篇文章主要為大家詳細(xì)介紹了QT5如何連接MySQL實(shí)現(xiàn)增刪改查功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下
實(shí)現(xiàn)代碼
#include #include #include #include #include #include #include #include using namespace std; #include #include #include const char *kDbType = "QMYSQL"; // 數(shù)據(jù)庫(kù)類型 const QString& kHost = "127.0.0.1"; // 數(shù)據(jù)庫(kù)的ipd地址 const int kPort = 3306; // 數(shù)據(jù)庫(kù)端口號(hào) const QString& kUsername = "root"; // 數(shù)據(jù)庫(kù)賬號(hào) const QString& kPassword = "123456"; // 數(shù)據(jù)庫(kù)密碼 //const QString& dbname = "test"; // 數(shù)據(jù)庫(kù)名 class DBSql{ private: QSqlDatabase db; // 數(shù)據(jù)庫(kù)操作對(duì)象 QSqlQuery query; QSqlError error; // SQLError對(duì)象 bool flag; // 判斷函數(shù)是否執(zhí)行 bool DBInit(){ db = QSqlDatabase::addDatabase(kDbType); db.setHostName(kHost); db.setPort(kPort); db.setUserName(kUsername); db.setPassword(kPassword); QString sqlname = "數(shù)據(jù)庫(kù)連接"; flag = db.open(); sqlerror(flag,query,NULL,sqlname); return flag; } void sqlerror(bool flag,QSqlQuery query,QString sql,QString sqlname){ if(flag){ qDebug() << sqlname+"成功!" << sql; }else{ error = query.lastError(); qDebug() << sqlname+"失??!" << sql << error.driverText() << error.databaseText(); } } public: // 構(gòu)造函數(shù),初始化數(shù)據(jù)庫(kù)連接 DBSql(){ this->DBInit(); } // 設(shè)置數(shù)據(jù)庫(kù)名 void setDatabase(const QString& dbname){ db.setDatabaseName(dbname); db.open(); } // 查詢表字段數(shù) int sqlRecord(const QString& sql){ QSqlQuery query(sql); QSqlRecord record = query.record(); int const n = record.count(); qDebug()<<"查詢的字段總數(shù):"<< n; return n; } // 查詢結(jié)果總數(shù) int sqlTotal(const QString& sql){ QSqlQuery query(sql); return query.size(); } // 根據(jù)sql返回查詢結(jié)果 QString sqlQueryValue(const QString& sql){ QSqlQuery query(db); flag = query.exec(sql); if(flag && query.next()){ return query.value(0).toString(); }else{ sqlerror(false,query,sql,"返回查詢結(jié)果失敗"); return NULL; } } // 增加記錄 bool sqlInsert(const QString& sql){ QSqlQuery query(db); flag = query.exec(sql); sqlerror(flag,query,sql,"增加記錄"); return flag; } // 刪除記錄 bool sqlDelete(const QString& sql){ QSqlQuery query(db); flag = query.exec(sql); sqlerror(flag,query,sql,"刪除記錄"); return flag; } // 查詢記錄 list* sqlQuery1(const QString& sql){ db.open(); QSqlQuery query(db); query.exec(sql); const int count = query.record().count(); const int total = query.size(); cout<<"The number of fileds to query: "<* dot; int *in; dot = new list; int i = 0; while(query.next()){ int j = 0; in = new int[4]; while(jpush_back(in); sqlerror(flag,query,sql,"查詢記錄"); return dot; } } int(*f(const QString& sql,const int total))[4]{ db.open(); QSqlQuery query(db); query.exec(sql); const int count = query.record().count(); cout<<"The number of fileds to query: "<* li; // li = dbsql.sqlQuery1(sqlquery); // qDebug()<size(); // list::iterator iterator; // for(iterator=li->begin();iterator!=li->end();++iterator){ // cout<<*iterator<
運(yùn)行結(jié)果
測(cè)試數(shù)據(jù)
/* Navicat Premium Data Transfer Source Server : localhost_3306 Source Server Type : MySQL Source Server Version : 50556 Source Host : localhost:3306 Source Schema : test Target Server Type : MySQL Target Server Version : 50556 File Encoding : 65001 Date: 23/03/2020 12:09:27 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for xy -- ---------------------------- DROP TABLE IF EXISTS `xy`; CREATE TABLE `xy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `x1` int(255) NULL DEFAULT NULL, `y1` int(255) NULL DEFAULT NULL, `x2` int(255) NULL DEFAULT NULL, `y2` int(255) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of xy -- ---------------------------- INSERT INTO `xy` VALUES (1, 1, 12, 3, 4); INSERT INTO `xy` VALUES (2, 5, 6, 7, 8); INSERT INTO `xy` VALUES (3, 9, 10, 11, 12); INSERT INTO `xy` VALUES (7, 13, 14, 15, 16); INSERT INTO `xy` VALUES (8, 17, 18, 19, 20); INSERT INTO `xy` VALUES (9, 21, 22, 23, 24); SET FOREIGN_KEY_CHECKS = 1;
到此這篇關(guān)于QT5連接MySQL實(shí)現(xiàn)增刪改查的文章就介紹到這了,更多相關(guān)QT5 MySQL增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
- QT連接MYSQL數(shù)據(jù)庫(kù)的詳細(xì)步驟
- QT連接Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟
- qt首次連接MYSQL驅(qū)動(dòng)的各種問(wèn)題圖文詳解
- 可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程
- QT連接Mysql數(shù)據(jù)庫(kù)的詳細(xì)教程(親測(cè)成功版)
- Qt連接MySQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)(保姆級(jí)成功版教程)
- Qt6遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單易上手版
- QT5.12連接MySQL的實(shí)現(xiàn)
相關(guān)文章
全局變量與局部變量在內(nèi)存中的區(qū)別詳細(xì)解析
以下是對(duì)全局變量與局部變量在內(nèi)存中的區(qū)別進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-10-10C語(yǔ)言實(shí)現(xiàn)三子棋小游戲的示例代碼
這篇文章主要介紹了如何通過(guò)C語(yǔ)言實(shí)現(xiàn)三子棋小游戲,三子棋小游戲的實(shí)現(xiàn)主要依賴于循環(huán)語(yǔ)句、函數(shù)和數(shù)組,感興趣的小伙伴可以嘗試一下2022-10-10c實(shí)現(xiàn)linux下的數(shù)據(jù)庫(kù)備份
本文給大家簡(jiǎn)單介紹下c實(shí)現(xiàn)linux下的數(shù)據(jù)庫(kù)備份的方法和具體的源碼,十分的實(shí)用,有需要的小伙伴可以參考下。2015-07-07C++ Coroutine簡(jiǎn)單學(xué)習(xí)教程
這篇文章主要為大家詳細(xì)介紹了C++ Coroutine的簡(jiǎn)單學(xué)習(xí)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08