最近的C++大作業(yè)需要用到Qt和數(shù)據(jù)庫,在此記錄下使用數(shù)據(jù)庫中遇到的問題和解決辦法。使用的軟件相關(guān)版本為Qt5.11.2 mingw5.3 32位、MySQL 5.7.24
下載安裝MySQL
首先在MySQL官網(wǎng)下載MySQL5.7.24 installer
https://dev.mysql.com/downloads/installer/

這里默認是最新版,點擊左側(cè)的Looking for...即可獲取5.7.x版本

選擇第二個下載,之后安裝,安裝的話按照默認選項即可,注意設(shè)置的密碼要記牢。
接著下載MySQL server 5.7.24的32位zip包
https://dev.mysql.com/downloads/mysql/
跟之前一樣,點擊右側(cè),即可下載5.7.x版本

選擇第一個下載。

下載后解壓,將lib文件夾下的libmysql.dll和libmysql.lib復(fù)制到qt里,我這里的目錄是C:\Qt\Qt5.11.2\5.11.2\mingw53_32\lib,你可以替換到相應(yīng)的目錄。

測試MySQL
之后打開MySQL 5.7 的命令行,測試一下安裝效果

輸入密碼登錄后,輸入:
show databases;
即可查看已經(jīng)存在的數(shù)據(jù)庫,初始安裝的數(shù)據(jù)庫跟我這里不太一樣,因為我自己加了一些測試。

ok能看到這些,基本說明數(shù)據(jù)庫安裝沒有問題了(其實安裝時,已經(jīng)執(zhí)行了檢測了,這里只是自己試一下)。關(guān)于數(shù)據(jù)庫的使用,這里推薦一份教程https://www.yiibai.com/mysql。
在Qt中使用數(shù)據(jù)庫
首先我們先導(dǎo)入一份數(shù)據(jù),http://www.yiibai.com/downloads/yiibaidb.zip在這里下載。
解壓出來的yiibaidb.sql放到一個文件夾里,比如D:目錄下,接著打開MySQL命令行,執(zhí)行以下操作導(dǎo)入這個數(shù)據(jù)庫。這里的目錄替換成你的響應(yīng)目錄
CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use yiibaidb;
source D:/yiibaidb.sql;
select city,phone,country from `offices`;
執(zhí)行效果如下,說明導(dǎo)入成功且沒有問題。

接著,打開Qt Creator,開始寫代碼,測試Qt使用數(shù)據(jù)庫的情況。
新建一個Qt console 項目,項目命名隨意,我這是testMySQL,構(gòu)建套件選擇mingw 32位


因為使用了數(shù)據(jù)庫模塊,所以需要在在.pro文件里添加上QT+=sql

將main.cpp的內(nèi)容修改如下:
注意這里需要將setPassword的參數(shù)修改為你自己的密碼
#include <iostream>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[]){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("yiibaidb");
db.setUserName("root");
db.setPassword("你自己的密碼");
if(!db.open()) {
qDebug() << "error!\n";
} else {
qDebug() << "Open";
}
QSqlQuery query(db);
query.exec("select * from offices;");
while(query.next ()) {
qDebug() << query.value ("phone").toString ();
}
return 0;
}
編譯運行,得到如下結(jié)果即說明正確,可以愉快地使用Qt和數(shù)據(jù)庫
