使用Qt5.6连接MySQL数据库
小标 2018-10-15 来源 : 阅读 1667 评论 0

摘要:本文主要向大家介绍了使用Qt5.6连接MySQL数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了使用Qt5.6连接MySQL数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

<

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

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

链接://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    

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程