美文网首页Qt学习
Qt5.11.2 mingw53 32位 使用MySQL5.7.

Qt5.11.2 mingw53 32位 使用MySQL5.7.

作者: 若梦儿 | 来源:发表于2018-12-05 20:58 被阅读51次

    最近的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版本

    5.7.24

    选择第二个下载,之后安装,安装的话按照默认选项即可,注意设置的密码要记牢。

    接着下载MySQL server 5.7.24的32位zip包
    https://dev.mysql.com/downloads/mysql/
    跟之前一样,点击右侧,即可下载5.7.x版本

    server
    选择第一个下载。
    5.7.24 server

    下载后解压,将lib文件夹下的libmysql.dll和libmysql.lib复制到qt里,我这里的目录是C:\Qt\Qt5.11.2\5.11.2\mingw53_32\lib,你可以替换到相应的目录。

    dll和lib

    测试MySQL

    之后打开MySQL 5.7 的命令行,测试一下安装效果

    MySQL 5.7 CLC

    输入密码登录后,输入:

    show databases;
    

    即可查看已经存在的数据库,初始安装的数据库跟我这里不太一样,因为我自己加了一些测试。


    使用MySQL

    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位

    2018-12-05_205000.png 2018-12-05_205027.png

    因为使用了数据库模块,所以需要在在.pro文件里添加上QT+=sql

    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和数据库

    运行结果

    相关文章

      网友评论

        本文标题:Qt5.11.2 mingw53 32位 使用MySQL5.7.

        本文链接:https://www.haomeiwen.com/subject/lsawcqtx.html