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. [CTCI] 单词最近距离

    单词最近距离 题目描述 有一篇文章内含多个单词,现给定两个单词,请设计一个高效算法,找出文中这两个单词的最短距离(即最少相隔的单词数,也就是两个单词在文章中位置的差的绝对值). 给定一个string数 ...

  2. java基础知识总结1

    一. java开发工具 Editplus:Editplus与jdk的连接配置.如:javac(编译).java(运行).javap(查看字节码) a) 配置内容: i. javac(编译):參数为 - ...

  3. 【React Native开发】React Native应用设备执行(Running)以及调试(Debugging)(3)

    ),React Native技术交流4群(458982758),请不要反复加群.欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...

  4. 服务器有无中木马前期诊断 注意:wget最好是从服务器上卸载掉,因为多数情况是wget下载木马到服务器的

    # rpm -qf /usr/bin/wget wget-.el6_6..x86_64 rpm -e --nodeps wget 有无下列文件: cat /etc/rc.d/init.d/selinu ...

  5. 菜鸟学Java(二十)——你知道long和Long有什么区别吗?

    Java中数据类型分两种: 1.基本类型:long,int,byte,float,double 2.对象类型:Long,Integer,Byte,Float,Double其它一切java提供的,或者你 ...

  6. LoadingController

    --local MainSceneConfig = require "res.scripts.configs.MainSceneConfig" -- 暂时添加一个临时配置文件 -- ...

  7. [Windows Azure] Virtual Machine and Cloud Service Sizes for Windows Azure

    Virtual machine size CPU cores Memory OS disk space–cloud services OS disk space–virtual machines Ma ...

  8. MVC的项目部署成应用程序或虚拟目录路径的问题

    1.js和css的引用出错 a.~/可以取得应用程序目录 b. ./定位到路径,./代表到本目录,../代表父级目录 2.打开页面view a. ./定位到路径 3.img src   a. ./定位 ...

  9. elementui常用知识点总结

    1.淡入淡出效果: <transition name="el-fade-in-linear"> <div v-show="show" clas ...

  10. linux下查看最后登陆的用户的信息

    [root@oracle ~]# last -aroot pts/1 Wed Apr 1 10:35 still logged in 10.3.12.1输入命令last -a 把从何处登入系统的主机名 ...