Qt数据库之添加MySQL驱动插件(1)

现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用。下面我们就以现在比较流行的MySQL数据库为例,说明一下怎样在Qt Creator中添加数据库驱动插件。在讲述之前,我们先看一下Qt Creator中数据库的插件到底放在哪里。

我们进入Qt Creator的安装目录,然后进入相对应的文件夹下,比方我这里是


  1. D:Qt2010.02.1qtpluginssqldrivers

在这里我们可以看见几个文件,如下图:

<根据名字中的关键字,我们可以判断出这就是ODBC数据库和SQLite数据库的驱动插件。下面我们编译好MySQL数据库驱动后,也会在这里出现相对应的文件。

首先:我们查看怎样安装数据库插件。

我们打开Qt Creator,在帮助中搜索SQL Database Drivers关键字。这里列出了编译Qt支持的所有数据库的驱动的方法。

我们下拉到在windows上编译QMYSQL数据库插件的部分,其内容如下:

这里详细介绍了整个编译的过程,其可以分为以下几步:

第一,下载MySQL的安装程序,在安装时选择定制安装,这时选中安装Libs和Include文件。安装位置可以是C:MySQL 。

注意:安装位置不建议改动,因为下面进行编译的命令中使用了安装路径,如果改动,那么下面也要进行相应改动。

第二,进行编译。我们按照实际情况输入的命令如下。


  1. cd%QTDIR%srcpluginssqldriversmysql
  2. qmake“INCLUDEPATH+=C:MySQLinclude”“LIBS+=C:MySQLliboptlibmysql.lib”mysql.pro
  3. mingw32-make

注意:在上面的命令中qmake之后如果加上“-o Makefile”选项,那么这个插件只能在以release模式编译程序时才能使用,所以我们上面没有加这个选项。

然后:我们按照上面的过程进行相应操作。

1.我们先下载MySQL的安装文件。

我们可以到MySQL的官方主页 http://www.mysql.com 进行下载最新的MySQL的windows版本,现在具体的下载页面地址为:

http://www.mysql.com/downloads/mirror.php?id=383405#mirrors

我们不进行注册,直接点击其下面的


  1. Nothanks,justtakemetothedownloads!

可以在其中选择一个镜像网点进行下载,我使用的是Asia下的最后一个,就是台湾的镜像网点下载的。

下载到的文件名为:mysql-essential-5.1.44-win32 ,其中的win32表明是32位的windows系统,这一点一定要注意。文件大小为40M左右。

当然你也可以到中文网站上进行下载:http://www.mysql.cn/,随便下一个windows的版本就行。

2.安装软件。

我们选择定制安装Custom。

然后选中安装Include文件和Lib文件。

我们将安装路径更改为:C:MySQL 。

最终的界面如下。

安装完成后,我们不进行任何操作,所以将两个选项都取消。

3.进行编译。

我们在桌面上开始菜单中找到Qt Creator的菜单,然后打开Qt Command Prompt。

然后输入第一条命令cd %QTDIR%srcpluginssqldriversmysql 后按回车,运行效果如下。

然后输入第二条命令:


  1. qmake“INCLUDEPATH+=C:MySQLinclude”“LIBS+=C:MySQLliboptlibmysql.lib”mysql.pro

按回车后运行效果如下:

最后输入:mingw32-make ,按下回车后经过几秒的编译,最终效果如下:

整个编译过程中都没有出现错误提示,可以肯定插件已经编译完成了。

4.我们再次进入Qt Creator安装目录下存放数据库驱动插件的文件夹。

我这里是D:Qt2010.02.1qtpluginssqldrivers

其内容如下:

可以看到已经有了和MySQL相关的文件了。

最后:我们编写程序测试插件。

1.我们将上一次的主函数更改如下。


  1. intmain(intargc,char*argv[])
  2. {
  3. QCoreApplicationa(argc,argv);
  4. QSqlDatabasedb=QSqlDatabase::addDatabase(“QMYSQL”);//添加数据库驱动
  5. returna.exec();
  6. }

运行程序,效果如下。

这里提示:QSqlDatabase: QMYSQL driver not loaded 。

2.这时我们需要将C:MySQLbin目录下的libmySQL.dll文件复制到我们Qt Creator安装目录下的qtbin目录中。

如下图:

3.这时再运行程序,就没有提示了。

4.我们再将主函数更改一下,测试这时可用的数据库驱动。


  1. intmain(intargc,char*argv[])
  2. {
  3. QCoreApplicationa(argc,argv);
  4. qDebug()<<“Availabledrivers:”;
  5. QStringListdrivers=QSqlDatabase::drivers();
  6. foreach(QStringdriver,drivers)
  7. qDebug()<<“t”<<driver;
  8. returna.exec();
  9. }

运行效果如下:

可以看到,现在已经有了MySQL的数据库驱动了。

转自:https://blog.csdn.net/dsg333/article/details/9628807

Qt添加驱动——Qt数据库之添加MySQL驱动插件的更多相关文章

  1. Django学习路11_向数据库中添加 和 获取指定条件数据

    在 views.py 中添加函数 向数据库中添加数据 def add_persons(request): for i in range(15): person = Person() flag = ra ...

  2. EA逆向生成数据库E-R图(mysql数据库-->ER图)

    [1]选择 工具-->ODBC-Data-Sources [2]ODBC数据源管理器  ,点击添加 [3]选择一个mysql驱动  ,点击MySQL ODBC 5.1 Driver(其它同理), ...

  3. 校园商铺-2项目设计和框架搭建-8升级mysql驱动相关的配置以支持mysql8

    1.如何升级驱动 1.1步骤: a 确保当前程序能正常访问数据库 b 更新mysql驱动重新运行程序进行校验 maven依赖https://mvnrepository.com/artifact/mys ...

  4. 五十九 数据库访问 使用MySQL

    MySQL是Web世界中使用最广泛的数据库服务器.SQLite的特点是轻量级.可嵌入,但不能承受高并发访问,适合桌面和移动应用.而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也 ...

  5. [数据库系列之MySQL] Mysql整体架构浅析一

    一.引言 平时我们在做Java系统时,一般情况下都会连接到一个MySQL数据库上去,执行各种增删改查的语句.大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:对MySQL可 ...

  6. Qt 5.2中编译加载MySQL数据库驱动问题的总结

    背景: 本科毕业设计涉及图形界面与数据库查询.选择使用Qt实现图形界面编程,使用MySQL构建数据库.之前安装了Qt 5.2,后来又安装了MySQL Server 5.6 (FULL完全安装).接着就 ...

  7. qt mysql驱动问题解绝

    传统解决方法:一.解决问题 本文解决在Ubuntu16.04系统下,Qt5无法连接MySQL数据库的问题(Qt5缺少MySQL驱动,Qt5缺少libqsqlmysql.so动态库,如何安装libqsq ...

  8. QT使用MySql的配置(使用addLibraryPath载入插件),编译QT的MySql驱动问题及解决方案(自己使用libmysql.lib进行编译mysql.pro,万不得已可以查看Makefile.Debug以解决问题)

    2010/04/23:Fixes : 更新批处理,以兼容WIN7. 第一次系统地玩QT,于是诞生了此预备式: [QT版本4.6.0(VS2008编译版),开发平台推荐使用Qt Creator(最新1. ...

  9. QT编译mysql驱动

    一. 下载mysql C链接库 地址:http://dev.mysql.com/downloads/ 根据当前系统选择下载: 二. 安装下载好的mysql驱动文件 注意,一定要安装在不含有中文.空格以 ...

随机推荐

  1. Binlog中最容易踩到的坑

    MySQL高可用架构中,主库复制是非常常见的一种. 当主库宕机后,可以提升一个从库作为新的主库,保证服务可用性:同时可以通过扩展从库,提高整个集群的QPS. 在主从复制架构下,MySQL通过binlo ...

  2. ES performance

    http://easyice.cn/ https://m.aliyun.com/yunqi/articles/60474 https://www.jianshu.com/c/d5c542376948 ...

  3. 深入源码分析Java线程池的实现原理

    程序的运行,其本质上,是对系统资源(CPU.内存.磁盘.网络等等)的使用.如何高效的使用这些资源是我们编程优化演进的一个方向.今天说的线程池就是一种对CPU利用的优化手段. 通过学习线程池原理,明白所 ...

  4. Android 微信支付资料收集

    老板要求支持微信支付,收集了些资料做后期参考 http://www.360doc.com/content/15/0214/10/7044580_448519997.shtml http://www.t ...

  5. 关于Android开发的一些个人总结(2016.04)

    引言 本文主要目标是整理下我在2016年第一季度针对Android学习的内容,不会深入细节,只是简单聊聊框架以及学习的方法. 我的Android之路 因为之前对Android有一个简单的接触,研究生期 ...

  6. pthread之线程堆栈

    转:http://blog.csdn.net/horstlinux/article/details/7666032 //先来讲说线程内存相关的东西,主要有下面几条: //进程中的所有的线程共享相同的地 ...

  7. crontab格式,命令

    http://www.blogjava.net/xiaomage234/archive/2007/12/26/170490.html crontab格式: 第1列分钟1-59 第2列小时1-23(0表 ...

  8. 【Bayesian】贝叶斯决策方法(Bayesian Decision Method)

    已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A).这里先解释什么是条件概率: 表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条 ...

  9. Linux下字符集的安装

    目前环境中经常会遇到编码转化的问题,UTF-8跟GB2312也有问题.只得在Linux上安装GB2312(在Linux操作系统上又称zh_CN.GB2312)的字符集,具体请看下文. Linux下几个 ...

  10. 玩转shell命令行

    移动光标快捷键 ctrl+f 向前移动一个字符 ctrl+b 向后移动一个字符 ctrl+a 移动到当前行首home ctrl+e 移动到当前行尾end alt+f 向前移动一个单词 alt+b 向后 ...