最近在项目开发中有这样一个需求:基于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
另外,增删查改已封成库,需要的请随时留言