最近的C++大作业需要用到Qt和数据库,在此记录下使用数据库中遇到的问题和解决办法。使用的软件相关版本为Qt5.11.2 mingw5.3 32位、MySQL 5.7.24
下载安装MySQL
首先在MySQL官网下载MySQL5.7.24 installer
https://dev.mysql.com/downloads/installer/
这里默认是最新版,点击左侧的Looking for...即可获取5.7.x版本
选择第二个下载,之后安装,安装的话按照默认选项即可,注意设置的密码要记牢。
接着下载MySQL server 5.7.24的32位zip包
https://dev.mysql.com/downloads/mysql/
跟之前一样,点击右侧,即可下载5.7.x版本
选择第一个下载。
下载后解压,将lib文件夹下的libmysql.dll和libmysql.lib复制到qt里,我这里的目录是C:\Qt\Qt5.11.2\5.11.2\mingw53_32\lib,你可以替换到相应的目录。
测试MySQL
之后打开MySQL 5.7 的命令行,测试一下安装效果
输入密码登录后,输入:
show databases;
即可查看已经存在的数据库,初始安装的数据库跟我这里不太一样,因为我自己加了一些测试。
ok能看到这些,基本说明数据库安装没有问题了(其实安装时,已经执行了检测了,这里只是自己试一下)。关于数据库的使用,这里推荐一份教程https://www.yiibai.com/mysql。
在Qt中使用数据库
首先我们先导入一份数据,http://www.yiibai.com/downloads/yiibaidb.zip在这里下载。
解压出来的yiibaidb.sql放到一个文件夹里,比如D:目录下,接着打开MySQL命令行,执行以下操作导入这个数据库。这里的目录替换成你的响应目录
CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use yiibaidb;
source D:/yiibaidb.sql;
select city,phone,country from `offices`;
执行效果如下,说明导入成功且没有问题。
接着,打开Qt Creator,开始写代码,测试Qt使用数据库的情况。
新建一个Qt console 项目,项目命名随意,我这是testMySQL,构建套件选择mingw 32位
因为使用了数据库模块,所以需要在在.pro文件里添加上QT+=sql
将main.cpp的内容修改如下:
注意这里需要将setPassword的参数修改为你自己的密码
#include <iostream>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[]){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("yiibaidb");
db.setUserName("root");
db.setPassword("你自己的密码");
if(!db.open()) {
qDebug() << "error!\n";
} else {
qDebug() << "Open";
}
QSqlQuery query(db);
query.exec("select * from offices;");
while(query.next ()) {
qDebug() << query.value ("phone").toString ();
}
return 0;
}
编译运行,得到如下结果即说明正确,可以愉快地使用Qt和数据库