Qt編譯mysql以及創建表后進行導入操作


       鑒於很多同學對Qt編譯myql總是不能成功。出現各種問題,今天特此寫出本教程,希望可以幫到須要的同學。
       首先,須要明確編譯的目的和原理。

       目的:Qt 5.2版本號曾經都是不帶mysql驅動的。所以須要進行編譯mysql數據庫驅動,僅僅有編譯完畢后才干被Qt載入上。假設你安裝的是Qt5.2以后版本號的,那就不須要了,由於在后來的版本號中,Qt官方添加這一模塊。

       能夠在Qt的安裝插件文件夾下查看自己的驅動是否已經存在。

比如我的在文件夾:

C:\Qt\4.8.2\plugins\sqldrivers。能夠看到當前的數據庫驅動

一般須要兩個即可了。

       原理:先看命令:qmake "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\libmysql.lib" mysql.pro

       解釋:qmake---是Qt中國的一種編譯命令,在linux下編程時常常會用到make命令。詳情能夠百度;INCLUDEPATH----后面的路徑是數據庫中"include"和"lib"的文件夾。

為什么要將這兩個文件復制一份考到其它盤?那是由於mysql在安裝的時候默認安裝路徑中有空格,這在編譯過程中是無法通過的,不信的同學能夠試一下,不行的話在考到其它盤里面;最后面的mysql.pro---這個是Qt的project文件,每一個Qtproject建立后都會生成一個以.pro結尾的文件,以后打開Qtproject的時候就雙擊你要打開的.pro結尾的哪個文件。整個project就打開了。

       可能我上面的解釋也沒有解釋清楚大概就是哪個意思。

       以下說說詳細的過程:

細心的同學就會發現,qmake.自己編譯時會出現這個問題:

'qmake' 不是內部或外部命令,也不是可執行的程序或批處理文件

      原因:沒有給Qt配置環境變量      

      解決的方法找到Qt的安裝文件夾,我的文件夾在這兒:

找到這個文件夾下的這個東西,看見了吧qmake


找不到的話能夠這樣做:單擊桌面Qt程序右鍵,打開文件路徑:

右擊打開我的電腦----點擊屬性---高級系統設置-----環境變量----找到path項---編輯

 

至此,其它的幾個文件夾頁這樣配置。在此就不再反復了。

當然最簡單最直接的是,不用配置。

直接用Qt自帶的command進行編譯。打開開始菜單,找到Qt comman窗口。

比方我的是這個:

   

      進入到Qt的源代碼文件夾下的插件文件夾--驅動文件夾---數據庫文件夾。注意這個編譯的是源代碼。然后輸入開始介紹的哪一行文件夾---按回車。

之后非常多同學都說沒有反應,那就對了,這一步的目的是為了下一步編譯做准備,會生成makefile文件。

       由於用的是mingw編譯器,所以用mingw32-make命令編譯,假設你用的是vs的,那就用nmake編譯。

       直接輸入命令mingw32-make----回車。

假設沒有錯誤。這個過程大概須要幾十秒鍾。接着進行安裝:輸入命令:mingw32-make install.能夠將生成的插件考入相應Qt的文件夾。

你能夠查看下驅動文件夾師是否存在qsqlmysql.dll和libqsqlmysql4.a這兩個文件,一般編譯成功后就會有的。

        此時編敲代碼會發現,還是沒有發現mysql驅動。

缺少引導文件。在考一個文件

就是之前你復制的那兩個文件。在lib下有個libmysql.dll文件

將其拷貝到Qt的啟動文件夾。跟前面打開方法一樣,在桌面鼠標右擊Qt的圖標,打開文件位置,然后粘貼進去進行。

        至此。mysql編譯任務完畢。

       那怎么知道自己的配置是否成功了呢,最簡單的就是寫個簡單的程序檢測下。

      建立一個QtGui Qpplicationproject。注意包括sql模塊(假設沒有包括,建完project后能夠自project中加入,不用操心)。一下是一個簡單的測試程序:

須要加入的頭文件:#include <QSqlDatabase>   #include <QDebug>

    qDebug() << "Available drivers:";

    QStringList drivers = QSqlDatabase::drivers();

    foreach(QString driver, drivers)
        qDebug() << "\t "<< driver;

    qDebug() << "End";
把上面的程序寫到main函數中就可以。

若是配置成功,則在窗體以下會輸出一下信息:

看見上面的QMYSQL了吧,說明已經檢測到了mysql數據庫驅動了。如今能夠進行后面的操作了。

       首先,為了進行連接數據庫。必須創建數據庫和數據表,怎么創建呢?這個原理還和大家熟知的sqlserver一樣,僅僅只是,略微有點差別,可能是命令大家還不熟悉,隨意新建一個文本文件,進行編輯:利用sql語句進行創建表,就創建一個簡單的學生表吧。

輸入一下sql語句:

注意輸入完畢后保存文件。文件的后綴是.sql    !!!

。。

         下一步是關鍵的時候,進行導入數據表。

依照上面的命令:show databses;---回車。就可以看見當前的數據庫名稱。接下來創建數據庫--這和我們在sqlserver中學的一樣。

create databses  mydatabse;

運行導入命令。將之前寫好的創建數據表導入數據庫中---

此次,完畢了主要的任務,在這里僅僅是創建了簡單的一張表,能夠依據你的須要自行創建數據表。

      注:在運行source命令之前不許使用數據庫。也就是說,你必須指定你要為哪個數據庫導入表。

完畢后,相同的方法,插入數據,也是在一個網文本文件里寫好插入數據命令,然后運行導入命令.

       以上步驟完畢后。可以進行一個簡單的連接數據庫測試,檢測是否可以連接上。

#include <QApplication>
#include "widget.h"
#include <QMessageBox>
#include <QSqlError>
#include <QTextCodec>

bool creatconnect()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("student");
    db.setUserName("root");
    db.setPassword("123456");

    bool ok = db.open();//建立數據庫連接

    if(!ok)
    {
        QMessageBox::critical(0,QObject::tr("連接數據庫失敗!

"),db.lastError().text()); return false; } else { QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("連接數據庫成功。。!

")); return true; } } int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec *codec = QTextCodec::codecForName("GB2312"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); if(!creatconnect()) { return 1; } Widget w; w.show(); return a.exec(); }

點擊Run(執行)能夠看見:

     

能夠看見查詢的數據。

       至此,全部簡單的編譯測試工作已經完畢了。

小伙伴們,快去試試你們的Qt和mysql吧。

      測試project文件我已經上傳了,大家能夠下載源代碼。

http://download.csdn.net/detail/u013704336/8278693

        以上內容。純屬個人理解,若有不論什么問題,歡迎大家指出,共同學習。(creaazylq@163.com)

   



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM