一、编译驱动
参考博客: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