本文将针对Qt调用数据库的过程进行讲解。
前期准备
本文使用的数据库是MySQL。由于Qt提供了多个数据库的驱动,因此对于其他数据库,调用方法大同小异。
pro文件修改
在项目工程文件中加入下列语句使用数据库
1 | QT += sql |
头文件
在需要使用数据库的代码中加入下面的头文件
1 |
数据库调用
创建数据库
创建数据库对象的代码如下:
1 | QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 载入QMYSQL驱动支持MySQL |
判断数据库状态
1 | if (!db.open()) { |
加载驱动
当没有数据库的驱动时,运行程序会提示驱动未加载,并给出可以使用的驱动。这里还没有搞定,因此暂时放一下。(傻逼windows,艹,建议果断放弃转投linux,总之搞了半天没装上驱动。)
1 | QSqlDatabase: QMYSQL driver not loaded |
由于Qt不再提供MySQL的驱动支持,需要我们自己安装,安装方法包括自己编译与下载编译好的DLL(Windows真是麻烦)
手工编译
1 在Qt安装目录下找到Qt\5.15.0\Src\qtbase\src\plugins\sqldrivers这个文件夹并进入
2 执行下列命令:
1 | qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Server 8.0/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Server 8.0/lib" |
将命令中的MySQL Server 8.0/include
和MySQL Server 8.0/lib
更换为自己的MySQL安装路径。
3 运行make && make install
下载DLL
下载libmysqld.dll
和libmysql.dll
两个文件,放到qt的编译器目录下,我的是Qt\5.15.0\mingw81_64\bin