之前写了一个Qt连接SQlite数据库的完整例子,有些小伙伴问了一些那Mysql,或者其他数据库如何连接呢。
传送门:qt连接sqlite完整例子
首先,你电脑上应该安装了MySql软件了吧,不像sqlite,qt是自己带的一些sqlite的接口,因此你不用安装。如果你电脑没有安装的话,先去安装个mysql吧。本人安装的是mysql5.7,使用的是MySql workbench可视化的界面。
安装后记得要环境配置,qt连接后需要的是libmysql.dll 这个文件,两种方式:
第一种找到你的 libmysql.dll 一般在 C:\Program Files\MySQL\MySQL Server 5.7\lib 你的安装路径下MySQL Server 5.7\lib
在没有配置你的环境变量下,可以把它扔进你qt编译文件的bin中,也可以复制到你工程中的debug文件夹下。
第二种是配置你的环境变量:比如我的:
检查上面的部分以后,让我们开始qt编程吧:
创建一个qt工程,本例子为了方便:创建了 QT Console Application
在你的.pro工程中添加: QT +=sql
数据库部分,我之前写了有数据,数据如下
其中emp表是:
然后Qt中的代码:
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlDriver>
#include <QSqlError>
#include <QtDebug>
void connnectMySql()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1"); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
db.setPort(3306); //连接数据库端口号,与设置一致
db.setDatabaseName("com"); //连接数据库名,与设置一致
db.setUserName("root");
db.setPassword("123456789aa"); //你数据库的密码
if(!db.open())
{
qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
return;
}
else
{
qDebug()<<"连接成功"<<"connect to mysql OK";
}
QSqlQuery query(db);
query.exec("select * from emp");
while(query.next())
{
qDebug() << query.value("age").toString()<<" and your name :"<< query.value("ename").toString();
}
qDebug() << "数据采集完成";
db.close(); //关闭数据库。
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
connnectMySql();
return a.exec();
}
结果: