摘要:本文主要向大家介绍了使用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数据库频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-IT技术咨询与就业发展一体化服务 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号