Qt5.11.2 mingw53 32位 使用MySQL5.7.24

最近的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版本

5.7.24

選擇第二個下載,之后安裝,安裝的話按照默認選項即可,注意設(shè)置的密碼要記牢。

接著下載MySQL server 5.7.24的32位zip包
https://dev.mysql.com/downloads/mysql/
跟之前一樣,點擊右側(cè),即可下載5.7.x版本

server

選擇第一個下載。
5.7.24 server

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

dll和lib

測試MySQL

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

MySQL 5.7 CLC

輸入密碼登錄后,輸入:

show databases;

即可查看已經(jīng)存在的數(shù)據(jù)庫,初始安裝的數(shù)據(jù)庫跟我這里不太一樣,因為我自己加了一些測試。


使用MySQL

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)入成功且沒有問題。


執(zhí)行命令

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

2018-12-05_205000.png
2018-12-05_205027.png

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

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ù)庫

運行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容