
除了Qt自带的SQLite, Qt还对当前流行的关系数据库如MySQL、PostgreSQL、DB2、Oracle等提供了支持。下面以最常用的MySQL为例,演示Qt对其访问和操作的方法。
自从Oracle收购MySQL后对其进行了商业化,如今的MySQL己经不能算是一个完全开源的数据库了,而Qt官方则一直严格秉持着开源理念,故Qt撤销了对MySQL数据库的默认支持,Qt环境中不再内置MySQL的驱动(QMYSQL),用户若是还想使用Qt连接操作MySQL, 只能用Qt的源码工程自行编译生成MySQL的驱动DLL库,然后引入开发环境使用,过程比较麻烦,下面介绍具体操作步骤。
(1)安装MySql
下载安装Mysql的免费社区版,官网为:
https://dev.mysql.com/downloads/。
(2)复制库文件
打开MySQL安装目录下的“lib”文件夹(我的是“C:Program FilesMySQLMySQL Server 8.0lib”),看到里面有两个文件“libmysql.dll”和“libmysql.lib”,将它们复制到Qt的MinGW编译器的“bin”目录(我的是“C:QtQt5.14.25.14.2mingw73_64in”)下。注意版本(32或64位)要一致。
(3)Qt源码
如果安装时选择了安装源码,则可找到Qt安装目录下源代码目录中的“mysql”文件夹(我的路径是“C:QtQt5.14.2Srcqtbasesrcpluginssqldriversmysql”,请根据自己安装的实际路径寻找。),
如果没有安装,则可在官网单独下载,地址为:
https://download.qt.io/archive/qt/5.14/5.14.2/submodules/qtbase-everywhere-src-5.14.2.tar.xz。
(4)编辑项目文件
进入源代码的“mysql”文件夹,可见其中有一个名为“mysql.pro”的Qt项目工程配置文件。
用文本编辑器打开“mysql.pro”文件,修改其内容如下:
TARGET = qsqlmysql
# 添加 MySql 的 include 路径
INCLUDEPATH += "C:Program FilesMySQLMySQL Server 8.0include"
# 添加MySQL的libmysql.lib路径,为驱动的生成提供lib文件
LIBS += "C:Program FilesMySQLMySQL Server 8.0liblibmysql.lib"
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
# 注释掉这条语句
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
# 生成dll驱动文件的目标地址,这里将地址设置在mysql下的lib文件夹中
DESTDIR = C:QtQt5.14.2Srcqtbasesrcpluginssqldriversmysqllib
以上配置的这几个路径请根据自己计算机上安装MySQL及Qt的实际情况填写。
(5)编译项目
启动QtCreator,定位到“mysql”文件夹下,打开“mysql.pro”对应的Qt项目,运行此项目,如果系统弹出消息框提示有一些构建错误,单击“Yes”按钮忽略。
(6)复制驱动文件
打开“mysql”文件夹,可看到其中多了个“lib”子文件夹,进入可看到编译生成的3个文件。其中,“qsqlmysql.dll”和“qsqlmysql.dll.debug”即是我们需要的Qt环境MySQL数据库的驱动。
选中上面生成的“qsqlmysql.dll”和“qsqlmysql.dll.debug”驱动文件并复制,然后将其粘贴到Qt安装目录下的“sqldrivers”文件夹(我的路径为 “C:QtQt5.14.25.14.2mingw73_64pluginssqldrivers”,请根据自己安装Qt的实际路径复制)下。
这样,我们就成功地给Qt环境添加了MySQL驱动,后面编程中就可以使用这个驱动访问MySQL数据库了。
————————————————
觉得有用的话请关注点赞,谢谢您的支持!
对于本系列文章相关示例完整代码有需要的朋友,可关注并在评论区留言!





下一篇Qt操作MySQL数据库