QT平台连接MySQL数据库

时间:2022-04-02 04:55:39

最近在项目开发中有这样一个需求:基于QT平台的简单的数据库操作软件。

之前开发用到的QT一直是5.1.1版本,但该版本对mysql支持不完善,简单说来,就是mysql驱动要自己编一遍,网上这样的文章很多,仅附上一个连接:http://blog.csdn.net/cgzhello1/article/details/8619276


从QT5.2.0版本以后,增加了对mysql数据库操作的支持,因此选用QT 5.2.0 + mysql-community-5.6.26.0的开发环境。


从无到有这样一个流程:

1. pro文件加:

QT += sql

2. 包含头文件

#include <QtSql>

3. 打开数据库

QSqlDatabase    dbconn;
QSqlQuery query;
dbconn = QSqlDatabase::addDatabase("QMYSQL");
dbconn.setHostName(hostName);//主机名字
dbconn.setDatabaseName(dbName);//数据库名字
dbconn.open(m_strUserName, m_strPassword);//用户名、密码,成功返回1
query = (QSqlQuery)dbconn;

 
 
4. 操作数据库 

增删查改

query.exec("yourSQL");//sql语言

5. 软件发布

经过不断尝试和验证,发布需要完成以下几步:

1. exe同级目录增加文件夹和文件:plugins\sqldrivers\qsqlmysql.dll (路径参考:Qt\Qt5.2.0\5.2.0\msvc2010_opengl\plugins\sqldrivers)

2. exe统计目录增加文件:libmysql.dll

3. main.c中main函数改成这样:

    QApplication a(argc, argv);
MainWindow w;
w.show();
QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator() + "plugins");
a.addLibraryPath(strLibPath);
return a.exec();



否则会出现的现象是,在QT软件里运行没问题,但发布后运行无法连接数据库。 


其他部分和QT发布一致


补充:

如果出现database not load的错误,需要拷贝libmysql.dll文件到Qt5.2.0\5.2.0\msvc2010_opengl\bin和Qt5.2.0\Tools\QtCreator\bin


另外,增删查改已封成库,需要的请随时留言