开发环境:Win7+Qt4.8.4+MySQL5.6.26+mingw32
参考文档如下:
http://blog.sina.com.cn/s/blog_a6fb6cc90101h1gr.html
1.去mysql的官网下载mysql的zip包(记住要下载的是32位的zip包,否则编译的时候会出错!!!和编译器版本对应!!!)
2.新建目录d:\qtmysql将下载好的zip包中的include和lib目录拷贝到d:\qtmysql
3.修改d:\%QTDIR%\src\plugins\sqldrivers\mysql\mysql.pro文件
在该文件末尾加入如下两行
INCLUDEPATH+= "d:/qtmysql/include"
LIBS+= -Ld:/qtmysql/lib/ -llibmysql
LIBS+= -Ld:/qtmysql/lib/ -llibmysql
4.使用QtCreater打开该mysql.pro工程文件
编译该工程文件即可
5.编译完成后在该工程的debug文件夹中将看到相应的.dll文件和.a文件。
进入release目录发现并没有任何文件,此时打开qt命令行
并进入该工程目录
执行make release即可在release目录下生成相应的.dll文件和.a文件
6.将上一步生成的两个.dll文件和.a文件拷贝到d:\%QTDIR%\plugins\sqldrivers目录下
7.将d:\qtmysql\lib\libmysql.dll拷贝到d:\%QTDIR%\bin目录下即可。
8.测试(记得在pro文件中加上QT+=sql)
#include <QApplication>
#include <QtSql>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qDebug()<<"available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<<driver;
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("hzq");
db.setUserName("root");
db.setPassword("123456");
if(!db.open())
qDebug()<<"failed to connect to mysql";
else
qDebug()<<"success";
QString select_all_sql = "select * from teacher_class";
//查询所有数据
QSqlQuery sql_query;
sql_query.prepare(select_all_sql);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value(0).toInt();
QString templ_name = sql_query.value(2).toString();
qDebug()<<QString("Id:%1 Templ Name:%2").arg(id).arg(templ_name);
}
}
return a.exec();
}
测试结果如下: