70 测试案例

在这个案例中,一方面实践了QSqlDatabase类和QSqlQuery类的基本用法,另一方面也验证了在Qt程序中访问MySQL数据库的可行性。

70.1 构建MySQL驱动

Qt和MySQL是来自不技术社区和企业的软件产品。二者在版本上很难保持协调一致。因此从Qt5以后,Qt官方不再提供预构建的MySQL驱动。需要MySQL驱动的用户可以利用Qt官方提供的驱动源码,结合其系统上实际安装的MySQL,自行构建MySQL驱动,以实现驱动与数据库的完美匹配。

70.1.1 修改MySQL驱动项目文件

编辑C:\Qt\Qt5.12.8\5.12.8\Src\qtbase\src\plugins\sqldrivers目录下的qsqldriverbase.pri文件,注释第4行,添加第5行:

编辑C:\Qt\Qt5.12.8\5.12.8\Src\qtbase\src\plugins\sqldrivers\mysql目录下的mysql.pro文件,注释第6行,添加第13、14、15行:

70.1.2 构建MySQL驱动动态链接库文件

用QtCreator打开C:\Qt\Qt5.12.8\5.12.8\Src\qtbase\src\plugins\sqldrivers\mysql目录下的mysql.pro文件,构建Release和Debug版本。在C:\Qt\Qt5.12.8\5.12.8\mingw73_64\plugins\sqldrivers目录下可以看到下面这两个动态链接库文件:

70.1.3 复制MySQL连接器动态链接库文件

将C:\Program Files\MySQL\MySQL Server 8.0\lib目录下的libmysql.dll文件,拷贝到C:\Qt\Qt5.12.8\5.12.8\mingw73_64\bin目录下。

70.2 案例

70.2.1 创建项目

通过QtCreator,在C:\Users\Minwei\Projects\Qt路径下,创建名为DBTest的控制台(Console)项目,并在项目文件中添加第2行:

70.2.2 建库建表

C:\Users\Minwei\Projects\Qt\DBTest\qt_testdb.sql:

在C:\Users\Minwei\Projects\Qt\DBTest目录下启动控制台,并执行如下命令:

70.2.3 实现功能

C:\Users\Minwei\Projects\Qt\DBTest\main.cpp:

70.2.4 测试验证

运行效果如图所示: