[超详细]Qt下Mysql驱动编译,QMYSQL编译

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: [超详细]Qt下Mysql驱动编译,QMYSQL编译

本文提供pdf版本还有word版本下载

pdf下载地址:

http://sdrv.ms/TkkQaB

word文档下载地址:

 http://sdrv.ms/U1GCwn

本文示例代码下载地址:

http://sdrv.ms/U1GHjF

1环境搭建

1.1安装Qt Creator配置系统环境变量

安装Qt Creator的过程比较简单,本人就不再过多叙述,相关文档可以自己搜索,相信你用到这篇文章的时候,你的Qt Creator已经安装上去了.

安装之后我们首先要把系统中的Qt的一些环境变量配置起来,也就是把我们常用的qmake还有mingw32-make.exe给配到系统的环境变量里面.

本人的Qt安装在: D:\QtSDK,Qt Creator 版本为:

我们需要把如下两处配置到系统的Path变量上

->D:\Qt\2010.05\mingw\bin

->D:\Qt\2010.05\qt\bin

也就是说在系统环境变量Path后面加上:

;D:\Qt\2010.05\qt\bin;D:\Qt\2010.05\mingw\bin;

然后确定即可.

然后在cmd命令窗口,便可以输入qmake -version或者mingw32-make.exe -version,如下所示:

1.2安装mysql并确定include和lib目录

安装Mysql的过程我只选取部分重要的地方,仅供参考.

为了编码统一,希望大家在选择数据库编码时,选择与自己代码编码相匹配的最好.

查看mysql的include和lib目录,这两个目录在我们编译QMYSQL时需要用到.

到现在我们的编译环境已经搭建好了,下面我们就开始去编译mysql的驱动.

2编译QMYSQL

2.1参考Qt Assistant了解纲要

具体编译的方法,可以在Qt Assistant里面输入:SQL Database Drivers可以找到怎么在windows下编译QMYSQL插件.

2.2具体操作

真正的在电脑上操作,可能会与帮助文档有些小小的不同,但是道理是一样的,掌握了精髓,就不怕编译不出来.

在我的电脑上,具体的操作方法如下:

->首先来到目录: D:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql

这个目录包含了mysql.pro,我们通过这个项目文件来编译出QMYSQL插件.

->键入命令,并回车:

D:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=D:/MySQL/include" "LIBS+=D:/MySQL/lib/libmysql.lib" mysql.pro

-> 键入命令并回车:

Mingw32-make.exe

->编译好之后,我们可以在目录: D:\Qt\2010.05\qt\plugins\sqldrivers可以发现如下几个文件:

libqsqlmysql4.a

libqsqlmysqld4.a

qsqlmysql4.dll

qsqlmysqld4.dll

为了直接在Qt Creator直接使用Mysql驱动我们还需要把目录D:\MySQL\lib下的libmysql.dll拷贝到目录: D:\Qt\2010.05\qt\bin

最后我们整个驱动就编译好了,然后就可以在Qt Creator中开发Mysql的程序了.

3测试QMYSQL驱动

我们测试代码如下:

#include <QApplication>
#include <QSqlDatabase>
#include <QMessageBox>
#include <QDebug>
#include <QSqlQuery>
#include <QString>
#include <QVariant>
int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    //加入QMYSQL驱动
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    //设置数据库的一些属性,比如主机名,数据库名,数据库用户名,密码以及端口
    db.setHostName("localhost");
    db.setDatabaseName("testqt");
    db.setPassword("root");
    db.setUserName("root");
    db.setPort(3306);
    
    //打开数据库连接
    bool ok = db.open();
    
    //判断是否连接成功
    if (!ok) {
        QMessageBox::critical(0, "Cannot open database", "Unable to establish a database connection", QMessageBox::Cancel);
        return false;
    } else {
        qDebug() << "db connection successfully!";
    }
    //创建数据库查询对象QSqlQuery
    QSqlQuery query;
    //执行SQL脚本
    query.exec("SELECT name FROM user");
    //如果有结果,就遍历结果
    while (query.next()) {
        qDebug() << "hi..." << query.value(0).toString();
    }
    return a.exec();
}

执行结果如下:

作者:阿飞

2012/10/26

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: [超详细]Qt下Mysql驱动编译,QMYSQL编译

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: