<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在Qt中操作MySQL資料庫首先要安裝mysql的驅動檔案,將MySQL下的libmusql.dll檔案複製到Qt的安裝路徑下的bin資料夾下即可。
直接將libmysql.dll檔案貼上到此資料夾中。
複製成功之後來測試一下驅動程式是否安裝成功,新建一個檔案,選擇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()); }
首先建立一個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語句
在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語句
方式一: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資料庫的文章就介紹到這了,更多相關Qt操作MySQL資料庫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45