一、編譯驅動
參考部落格:http://blog.csdn.net/xian0gang/article/details/49791351
因為從QT5以來,它就自帶資料庫驅動了,是以我們不需要費事的編譯也可以使用資料庫。QT通路MySQL需要兩個動态連結庫檔案,一個是QT自己的mysql驅動插件,另一個是MySQL提供的動态連結庫,缺一不可。
在程式裡指定要通路的資料庫是MySQL,QT會自動的加載MySQL驅動插件,其實實作依賴于MySQL的動态連結庫通路MySQL。
(1)通路MySQL提供的動态連結庫
在這就不提怎麼安裝MySQL 了,在目錄 lib 裡可以找到 MySQL 的動态連結庫 libmysql.dll 和 libmysqld.lib

找到這兩個檔案,然後把它們複制到我們QT安裝的目錄下,如下:
(2)測試資料庫連接配接
在項目檔案.pro中,加入sql子產品,然後在用到所需的類是必須包含頭檔案。
QT_HelloWorld18.pro
1 #資料庫操作,需要加載sql子產品
2 QT += core gui sql
3
4 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
5
6 TARGET = QT_HelloWorld18
7 TEMPLATE = app
8
9
10 SOURCES += main.cpp\
11 widget.cpp
12
13 HEADERS += widget.h
14
15 FORMS += widget.ui
widget.cpp
1 #include "widget.h"
2 #include "ui_widget.h"
3 #include <QDebug>
4 #include <QtSql/QSqlDatabase>
5 #include <QtSql/QSqlError>
6 #include <QMessageBox>
7 #include <QString>
8
9 Widget::Widget(QWidget *parent) :
10 QWidget(parent),
11 ui(new Ui::Widget)
12 {
13 ui->setupUi(this);
14
15 //列印QT支援的資料庫驅動
16 qDebug() << QSqlDatabase::drivers();
17
18 //添加MySql資料庫
19 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
20 //連接配接資料庫
21 db.setHostName(QString::fromLocal8Bit("127.0.0.1"));//資料庫伺服器IP
22 db.setUserName(QString::fromLocal8Bit("root"));//資料庫使用者名
23 db.setPassword(QString::fromLocal8Bit("ccs"));//密碼
24 db.setDatabaseName(QString::fromLocal8Bit("db_qt_test"));//使用哪個資料庫
25
26 if(db.open() == true)
27 {
28 QMessageBox::information(this,QString::fromLocal8Bit("正确"),
29 QString::fromLocal8Bit("連接配接資料庫成功"));
30 return ;
31 }
32 else
33 {
34 QMessageBox::warning(this,QString::fromLocal8Bit("錯誤"),
35 db.lastError().text());
36 return ;
37 }
38 }
39
40 Widget::~Widget()
41 {
42 delete ui;
43 }
轉載于:https://www.cnblogs.com/blog-ccs/p/7472900.html