mysql如何和qt連接

mysql和qt連接的方法:首先下載安裝mysql和qt;然后在“cmd.exe”軟件中,輸入SQL相關(guān)指令;接著建立QT程序;最后在“sql_test.pro”文件中添加“QT +=sql”即可。

mysql如何和qt連接

推薦:《mysql視頻教程

由于畢設(shè)需要用到QT讀取數(shù)據(jù)庫中的數(shù)據(jù),并將數(shù)據(jù)保存至數(shù)據(jù)庫中。花了一天的時間,總算實現(xiàn)了從QT中讀取數(shù)據(jù)庫中的數(shù)據(jù)。網(wǎng)上相關(guān)資料很多,但是寫得不是很全,中間出現(xiàn)了一些問題,解決起來比較麻煩。所以本文從MYSQL下載、安裝,QT連接MYSQL盡可能寫詳細(xì),若有不足,還請見諒。

? ? 1、QT5.5下載

? ? ? ? 本文使用的 windows32 QT5.5 版本為(qt-opensource-windows-x86-mingw492-5.5.10),可從我的百度云:https://pan.baidu.com/s/1XsVmgd3Qd-J0BHPVOtMVkA下載

? ? ? ? 若選用高版本,具體安裝方法可自行百度。

? ? 2、MYSQL5.6下載

? ? ? ? 由于QT選用的Windows32位,所以MYSQL也應(yīng)選擇Windows32位版本為mysql-5.6.39-win32.zip。(若QT選擇的為Windows64位,則MYSQL應(yīng)選擇Windows64位),

? ? ? ? 可從我的百度云:https://pan.baidu.com/s/1XsVmgd3Qd-J0BHPVOtMVkA下載。

? ? ? ? 若選用高版本,具體下載方法可自行百度。

? ?3、MYSQL5.6安裝

? ? ? ? 1)將mysql-5.6.39-win32.zip解壓至D盤中的MYSQL SERVER,且重命名為mysql-5.6。解壓修改后的結(jié)果如圖1-1所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-1

? ? 2)修改my-default.ini,修改后如圖1-2所示

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-2

3)增加環(huán)境變量。右鍵我的電腦,點(diǎn)屬性,點(diǎn)高級系統(tǒng)設(shè)置,點(diǎn)環(huán)境變量,在PATH中添加 ;D:MYSQL SERVERmysql-5.6bin(分號不要忘了,根據(jù)自己的安裝目錄改寫),點(diǎn)擊確認(rèn)就行。

4)在C盤中找到cmd.exe,并以管理員權(quán)限打開。分別執(zhí)行以下指令:

? ?d:

? ?cd ?MYSQL SERVERmysql-5.6bin?

? mysqld -initalize -user=mysql -console

? mysqld -install,輸入該指令后會打印 Service successfully installed

? net start mysql,輸入該指令后會打印MySQL服務(wù)已經(jīng)啟動成功。至此MYSQL5.6已經(jīng)安裝成功,并且已運(yùn)行。

?4、MYSQL登陸與修改密碼

? 1)在cmd.exe軟件中,繼續(xù)輸入SQL相關(guān)指令:

? ?mysql -u root -p,輸入該指令后出現(xiàn) Enter password: ?,第一次登陸直接回車,進(jìn)入mysql軟件。如圖1-3

? ?? ??mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-3

?2)增加root的密碼。

? ? mysql> set password for root@localhost=password(‘88888888’);

? ? 輸入該指令后ront 的密碼變?yōu)?8888888。(在編寫QT程序中需要用到用戶名為root和密碼為88888888)

? ? mysql>exit

? ? 輸入該指令后退出。

? ?重新登陸,輸入?mysql -u root -p,輸入該指令后出現(xiàn) Enter password: ,輸入88888888。若輸入密碼不是88888888,則會出現(xiàn)報錯,如圖1-4所示

? ? ? ? ? ? ? ? ? ?mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-4

?3)添加測試表,在test庫中添加student表,并添加一些數(shù)據(jù)。具體操作如圖1-5所示,至此MYSQL部分已經(jīng)全部完成。(注意是在test庫中添加,對應(yīng)QT應(yīng)選擇test;

mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-5

5、建立QT程序

1)將mysql-5.6文件lib目錄下的libmysql.dll和libmysqld.dll復(fù)制到Qt5.5中的mingw493_32的bin文件下。如圖1-6所示;mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-6

2)新建項目,選擇QT Console Application。命名項目名為sql_test;

在sql_test.pro文件中添加 QT +=sql

main.cpp改為

 1 #include <QCoreApplication> 2 #include <QSqlDatabase> 3 #include <QSqlQuery> 4 #include <QSqlError> 5 #include <QtDebug> 6 void connect_mysql() 7 { 8     QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); 9        db.setHostName("127.0.0.1");      //連接數(shù)據(jù)庫主機(jī)名,這里需要注意(若填的為”127.0.0.1“,出現(xiàn)不能連接,則改為localhost)10        db.setPort(3306);                 //連接數(shù)據(jù)庫端口號,與設(shè)置一致11         db.setDatabaseName("test");      //連接數(shù)據(jù)庫名,與設(shè)置一致12         db.setUserName("root");          //數(shù)據(jù)庫用戶名,與設(shè)置一致13         db.setPassword("88888888");    //數(shù)據(jù)庫密碼,與設(shè)置一致14         db.open();15         if(!db.open())16         {17             qDebug()<<"不能連接"<<"connect to mysql error"<<db.lastError().text();18             return ;19         }20         else21         {22              qDebug()<<"連接成功"<<"connect to mysql OK";23         }24         QSqlQuery query(db);25         query.exec("select * from student");26         while(query.next()){27             qDebug()<<query.value("name").toString();28         }29 }30 int main(int argc,char *argv[])31 {32     QCoreApplication a(argc,argv);33     connect_mysql();34     return a.exec();35 }

3)測試結(jié)果

?mysql如何和qt連接

? ? ? ? ? ? ? ? ? ? ? ? ?圖1-7

? ?結(jié)果表明,QT已經(jīng)成功讀取MYSQL中的student表。

可以在 https://github.com/xtuwang/Qt_Project/tree/xtuwang-patch-1中下載該項目。

?

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享