最简单教程,不用看文字,直接看视频:http://www.bilibili.com/video/av21053815?share_medium=android&share_source=copy_link&bbid=D04BBDA1-8C06-412C-997D-A429F7C4BE8F14595infoc&ts=1528346164693
做一个数据库界面,一共需要三个软件,包括Qt+Navicat premium+MySql三个软件。这三个东西都要安装在自己使用的电脑上面。Qt的安装包使用的是本人百度云盘里面的安装包Qt5.4.2(这个安装包安装了就可以直接用,很方便,一般建议整个安装包全部安装上去,因为我一直都是全部安装的,不全部安装,我不知道效果是什么样子的,安全起见,全部装),Navicat premiu 12这个软件是在网上直接下载的,需要进行破解,参考链接是:
https://blog.csdn.net/qq_21205435/article/details/78902052,反正你去网上找,多的是经验贴,这个软件的使用包括下载安装包,安装,破解,并且它创建数据库的方法是http://www.cnblogs.com/sshoub/p/4321640.html。mysql软件使用的是.msi形软件,使用的是百度云盘里面的mysql5.7.17.msi版本,要用云盘里面有现成的,安装参考:https://blog.csdn.net/kerafan/article/details/78002379和http://www.cnblogs.com/sshoub/p/4321640.html和http://www.cnblogs.com/whaben/articles/6687544.html。有以下的几个步骤。QT连接Mysql操作
一:准备一个数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。说实际一点,比如你要做一个登录、注册功能就需要用到数据库。登陆的时候检查用户名密码是否正确,注册时判断用户名是否已经存在,不存在再插入自己的信息等等,这些方面都需要用到。
①安装mysql:直接百度搜索下载,按照要求安装即可。
②安装Navicat:Navicat就是将mysql操作(建表、增删查改等)变为可视化操作,像我等菜鸟连基本的sql语句都不懂的,没有一个可视化操作怎么能行。
③我们用Navicat创建一个sql连接:点击连接选择MySql,连接名随便取,
主机ip:就是我们将要连接到那个主机上,这里由于我们的在自己的电脑装的Mysql,所以填localhost或者127.0.0.1,
端口:3306不改。
用户名:就是你安装mysql时用的,不知道是什么就填root
密码:如果你没改密码,默认为空。
点击连接测试,如果成功就确定。失败的话看什么报错,百度错误,寻找解决办法!
④双击刚刚我们创建的连接,启动它,颜色会变绿。然后右键新建一个数据库起一个名,字符集选个根据需要选,我选的是utf8
⑤我们展开创建的数据库选中表,右键新建一个表,定义一些自己的量,具体操作百度。
⑥补充:如果在编辑器完美连接数据库,而打包后出现无法连接的问题,那么多半是你的数据库libmySQL.dll没有打包进你的程序文件夹。这个dll在你的安装目录下直接搜索就可以找到。然后复制到你的打包文件的exe同级目录就可以了。
二:QT 连接
.pro中添加 QT +=sql
头文件添加:#include <QtSql>#include <QSqlDatabase>
!!注意事项:如果报错:QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7请参照这里
直接上代码:
#define IP "127.0.0.1"
#define UserName "root"
#define Password ""
#define DatabaseName "ironthreshold"
ThresholdFromSql::ThresholdFromSql(QObject *parent) : QObject(parent)
{ db= QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(IP); //127.0.0.1也是一样的,属于本地地址
db.setUserName(UserName); //登陆MYSQL的用户名
db.setPassword(Password); //你自己登陆的密码
db.setDatabaseName(DatabaseName); //登陆数据库的名称
if (!db.open())
{//打开数据库连接
QMessageBox::critical(0, QString::fromLocal8Bit("连接提示"),
QString::fromLocal8Bit("无法建立数据库连接,请检查网络!"),
QString::fromLocal8Bit("确定"));
return; }
else { QMessageBox::critical(0, QString::fromLocal8Bit("连接提示"), QString::fromLocal8Bit("MySql Content Success!"), QString::fromLocal8Bit("确定")); QString sclectstr="select sensor_id,speed1,speed2,speed3 from Windspeed";//sql查询语句从风速表中查询一些阈值数据 sclectfrommysql_fs(sclectstr); sclectstr="select sensor_id,speed1,speed2,speed3 from Stress"; sclectfrommysql_yl(sclectstr); sclectstr="select sensor_id,speed1,speed2,speed3 from Shock"; } } void ThresholdFromSql::sclectfrommysql_fs(QString sclectstr) { QSqlQuery query; bool success = query.exec(sclectstr); if(!success){ qDebug() << "查询user失败";return; } else { // 将查询的结果集指针调整到最开始 query.seek(-1); int num=sizeof(query); //总数据个数 num=num/query.numRowsAffected();//列数目 mydata oneFSdata; while(query.next())//一行(循环行) { oneFSdata.sensor_id=query.value(0).toInt(); oneFSdata.first_alert_threshold=query.value(1).toDouble(); oneFSdata.second_alert_threshold=query.value(2).toDouble(); oneFSdata.third_alert_threshold=query.value(3).toDouble(); Alldata_Fs.append(oneFSdata); } //emit finishsclect() } }
这段文字参考了链接:https://blog.csdn.net/qq_22824481/article/details/79645927
把代码都写好了,还不够,需要找一个配套有用的软件(动态链接库)libmysql.dll,放进QT5.4.2的bin文件里面。这样就可以完全的连接了。
实际上,如果你需要使用mysql数据库的时候,你只要安装了qt和mysql两个软件就可以操作了。navicat premium12这个软件,只不过是用来把你做的操作可视化来给别人看的。有它没它其实都没什么,没有也可以,就是我们看不懂mysql数据库的内容,才需要这个navicat软件来显示给我们看我们做了什么操作。
1.https://blog.csdn.net/qq_27093465/article/details/53411667?_u_u_u=0.16632314186827735 mysql数据库操作的命令行介绍