天天看點

QT學習筆記(16) QT5的資料庫操作

一、編譯驅動

  參考部落格: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學習筆記(16) QT5的資料庫操作

  找到這兩個檔案,然後把它們複制到我們QT安裝的目錄下,如下:

  

QT學習筆記(16) QT5的資料庫操作

(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