最近在項目開發中有這樣一個需求:基於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
另外,增刪查改已封成庫,需要的請隨時留言