使用Qt5.6连接MySql

  最近在做毕业设计,有不少同学选择使用Qt和Mysql做数据库程序。然而,这两种开发工具并不是非常完美的一结合就能使用的。通常Qt会自带Mysql的驱动,但是,一般能直接使用的并不多。大多数博客论文都给出了Mysql驱动的编译过程。在这里给出现成的、已经编译好了的驱动。在可以win10、Qt5.6和mysql5.5版本中适用。

连接数据库所需要的文件:

链接:http://pan.baidu.com/s/1bpN6NjL 密码:86ys

安装完Qt和Mysql,配置好环境变量。使用下面的程序测试一下是否能连接

在ConMysql.pro里添加

1 QT       += sql

ConMysql.pro

 1 #ifndef DBHELPER_H
 2 #define DBHELPER_H
 3
 4 #include <QSqlDatabase>
 5 #include <QSqlQuery>
 6 #include <QObject>
 7 #include <QtDebug>
 8 #include <QString>
 9 #include <QXmlStreamReader>
10
11 class DBhelper
12 {
13 public:
14     static DBhelper* getDBhelper();
15     bool Open();
16     void Close();
17
18     void parseBlog();
19 private:
20     DBhelper();
21     static DBhelper *_dbhelper;
22
23     QString _HostName;
24     int     _Port;
25     QString _DatabaseName;
26     QString _UserName;
27     QString _Password;
28
29     QSqlDatabase dbSQL;
30 };
31
32 #endif // DBHELPER_H

DBhelper

 1 #include "dbhelper.h"
 2
 3 DBhelper::DBhelper()
 4 {
 5     _HostName = "127.0.0.1";
 6     _Port = 3306;
 7     _DatabaseName = "login";
 8     _UserName = "root";
 9     _Password = "xiaoqi";
10
11     dbSQL=QSqlDatabase::addDatabase("QMYSQL");
12 }
13
14 bool DBhelper::Open()
15 {
16     dbSQL.setHostName(_HostName);
17     dbSQL.setPort(_Port);
18     dbSQL.setDatabaseName(_DatabaseName);
19     dbSQL.setUserName(_UserName);
20     dbSQL.setPassword(_Password);
21     if( !dbSQL.open() )
22     {
23         return false;
24     }
25     return true;
26 }
27
28 void DBhelper::Close()
29 {
30     if(dbSQL.isOpen())
31     {
32         dbSQL.close();
33     }
34 }
35
36
37 DBhelper* DBhelper::_dbhelper = NULL;
38
39 DBhelper *DBhelper::getDBhelper()
40 {
41     if(DBhelper::_dbhelper == NULL)
42     {
43         DBhelper::_dbhelper = new DBhelper();
44     }
45     return _dbhelper;
46 }

dbhelper.cpp

在逻辑文件里添加

    DBhelper* db = DBhelper::getDBhelper();
    if( !db->Open())
    {
        qDebug() << "数据库载入失败!";
    }

如果提示  QMYSQL driver not loaded ,则需要用上述网盘里的文件去替换源文件

1.将sqldriver.rar解压后  替换掉X:\Qt\Qt5.6.0\5.6\mingw49_32\plugins\sqldrivers里原有的文件

2.将mysql路径下的libmysql.dll或者网盘里libmysql.dll的放入C盘的windows路径下,在调试程序

如果没有提示上述红色字样,说明驱动加载成功,根据MYSQL参数修改相应的连接参数

DBhelper类解释:

(1)构造函数里初始化连接字符串,这里可以使用xml保存连接参数,初始化是读取xml文件,方便修改内容

(2)getDBhelper函数可以获取到该类的实例。使用单例模式,该类在程序中只成功初始化一次,以后每次都可以通过该方法获取到这一个实例

(3)open与close 打开与关闭函数

附上完整的逻辑代码

 1 void MainWindow::on_pushButton_clicked()
 2 {
 3     DBhelper* db = DBhelper::getDBhelper();//获取实例
 4     if( !db->Open())
 5     {
 6         qDebug() << "数据库载入失败!";
 7     }
 8     //逻辑代码
 9     QString id = ui->lineEdit->text();
10     QString pass = ui->lineEdit_2->text();
11     int n;
12     QSqlQuery query;
13     query.prepare("select COUNT(*) from loginTable where ID = ? and password = ?");
14     query.bindValue(0, id);
15     query.bindValue(1, pass);
16     query.exec();
17     while(query.next())
18     {
19          n = query.value(0).toInt();
20     }
21     if( n == 1)
22         qDebug() << "登陆成功!";
23     else
24         qDebug() << "登陆失败!";
25
26     db->Close(); //关闭数据库
27 }

login.cpp

时间: 2024-08-10 02:03:31

使用Qt5.6连接MySql的相关文章

Qt5.5连接MySQL

(一)环境 windows下Qt5.5,安装的是MySQL Server 5.5版本. (二)qt连接mysql的原理 qt连接mysql需要两个dll,一个是qt连接mysql的驱动(注意:qt5.5自带这个驱动dll,位于Qt5.5.0\5.5\msvc2013\plugins\sqldrivers下qsqlmysql.dll和qsqlmysqld.dll,如果是qt4则需要下载qt该驱动的源代码自己编译),另一个是mysql自带的libmysql.dll(位于MySQL\MySQL Ser

CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)

用qt连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r.so.16 => not found ,后明显libmysqlclient_r.so.16 缺少另一个共享库,他们是依赖关系,解决了这个问题qt才能真的连接到mysql数据库.而我的/usr/lib64/下的共享库版本比较高是libmysqlclient.so.18,想到了一个比较投机的想法ln创

编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)

第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\Qt5.0.0-rc2\5.0.0-rc2,而Qt5.0的解压路径为:C:\Qt\qt-5.0.1-src. 注意事项:(1)安装mysql数据库的时候,网上很多教程说要选择自定义安装,并把lib和include这个选项选上.其实这个并不重要.因为我机器上很久前装mysql时选的是typical安装

毕业设计之qt连接MySQL

//连接MySQL数据库的函数 bool LoginView::createConnection() {     QSqlDatabase t_db = QSqlDatabase::addDatabase("QMYSQL");     t_db.setHostName("localhost");     t_db.setDatabaseName("chatsystem");     t_db.setUserName("root"

QT连接MySQL

Qt 连接MySQL 是件很简单的事,但也有可能很不简单. QT给我们的提示只有 QMYSQL driver not loaded,让我们毫无头绪.访问其他数据库也可以用同样的方法解决. Qt 访问 MySQL 需要 2 个动态链接库文件,一个是 Qt 自己的 MySQL 驱动插件,另一个是 MySQL 提供的动态链接库,缺一不可.在程序里指定要访问的数据库为 MySQL,Qt 会自动的加载 MySQL 驱动插件,其实现依赖于MySQL 的动态链接库访问 MySQL. #include <ios

Qt 5.4.1下编译MySQL驱动,连接MySQL数据库

Qt安装在D:\Qt目录,Qt 5.4.1下连接MySQL数据库,发现会出现以下错误 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL QMYSQL3 QODBC 到D:\Qt\Qt5.4.1\5.4\mingw491_32\plugins\sqldrivers目录下看看,发现是有mysql驱动的 Google了一下,据说是该驱动所满足的依赖性,不满足,需要重

QT连接MYSQL数据库教程

最近购买了阿里云Linux服务器,处于自学需要安装了MYSQL5.7. 准备用QT开发个小工具,在使用QT提供的标准类连接MYSQL库的时候一直爆出无法加载MYSQL驱动的问题. 软件环境是windows10 +Qt4.8.7+mingw+qtcreator,在Qt4这个版本中不包含MYSQL数据的驱动,需要手动编译.网上的其他教程一般是针对MYSQL5.5这个版本,编译的时候需要用到/lib/opt路径下的lib文件(习惯Linux系统路径格式了,windows格式请脑补),经过多次尝试已然无

【Qt】Qt5.12连接MySQl5.7(亲自测试成功)

目录 00. 目录 01. Qt5.12连接MySQL5.7测试代码 02. Qt5.12连接MySQL5.7问题描述 03. 解决办法 04. 结果测试 05. 打赏 00. 目录 01. Qt5.12连接MySQL5.7测试代码 qDebug() << QSqlDatabase::drivers(); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("192.168.2

qt连接mysql报错:QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

之前使用Qt连接mysql数据库,遇到过这样的报错,后来解决了,但没有记录下来,这次又遇到了,花了好多的精力,这次吸取上次的教训,做一下记录和总结. 报错截图: 编辑背景: Qt5.13.0,编译器是mingw73_64,是64位的. mysql-5.7.27-winx64,也是64位的. 有人说,qt的编译器的位数要和数据库的位数是一致的,我没试过不同位数行不行,反正我的都是64位的. 问题: 使用<QSqlDatabase>库进行mysql的连接操作,出现下面的报错信息,当然别忘了在.pr