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安装的目录下,如下:
(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 }