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 }

  

原文地址:https://www.cnblogs.com/blog-ccs/p/7472900.html