0

0

Qt编译mysql以及创建表后进行导入操作

php中文网

php中文网

发布时间:2016-06-07 16:12:33

|

1846人浏览过

|

来源于php中文网

原创

鉴于许多同学对Qt编译myql总是不能成功,出现各种问题,今天特此写出本教程,希望能够帮到需要的同学。 首先,需要明白编译的目的和原理。 目的:Qt 5.2版本以前都是不带mysql驱动的,所以需要进行编译mysql数据库驱动,只有编译完成后才能被Qt加载上。如果你

鉴于许多同学对Qt编译myql总是不能成功,出现各种问题,今天特此写出本教程,希望能够帮到需要的同学。
首先,需要明白编译的目的和原理。

目的:qt 5.2版本以前都是不带mysql驱动的,所以需要进行编译mysql数据库驱动,只有编译完成后才能被qt加载上。如果你安装的是qt5.2以后版本的,那就不需要了,因为在后来的版本中,qt官方增加这一模块。

可以在Qt的安装插件目录下查看自己的驱动是否已经存在。例如我的在目录:

C:\Qt\4.8.2\plugins\sqldrivers。可以看到当前的数据库驱动

\

一般需要两个就行了。

原理:先看命令:qmake "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\libmysql.lib" mysql.pro

解释:qmake---是Qt中国的一种编译命令,在linux下编程时经常会用到make命令,详情可以百度;INCLUDEPATH----后面的路径是数据库中"include"和"lib"的目录。为什么要将这两个文件复制一份考到其他盘?那是因为mysql在安装的时候默认安装路径中有空格,这在编译过程中是无法通过的,不信的同学可以试一下,不行的话在考到其他盘里面;最后面的mysql.pro---这个是Qt的工程文件,每个Qt工程建立后都会生成一个以.pro结尾的文件,以后打开Qt工程的时候就双击你要打开的.pro结尾的哪个文件,整个工程就打开了。

可能我上面的解释也没有解释清楚大概就是哪个意思。

下面说说具体的过程:

细心的同学就会发现,qmake.自己编译时会出现这个问题:

'qmake' 不是内部或外部命令,也不是可运行的程序或批处理文件

原因:没有给Qt配置环境变量

解决办法:找到Qt的安装目录,我的目录在这儿:

\

找到这个目录下的这个东西,看见了吧qmake

\

找不到的话可以这样做:单击桌面Qt程序右键,打开文件路径:

\

右击打开我的电脑----点击属性---高级系统设置-----环境变量----找到path项---编辑

\\\

\\

至此,其他的几个目录页这样配置。在此就不再重复了。

当然最简单最直接的是,不用配置。直接用Qt自带的command进行编译。打开开始菜单,找到Qt comman窗体。比如我的是这个:

\\

进入到Qt的源码目录下的插件目录--驱动目录---数据库目录。注意这个编译的是源码。然后输入开始介绍的哪一行目录---按回车。之后很多同学都说没有反应,那就对了,这一步的目的是为了下一步编译做准备,会生成makefile文件。

因为用的是mingw编译器,所以用mingw32-make命令编译,如果你用的是vs的,那就用nmake编译。

直接输入命令mingw32-make----回车。如果没有错误,这个过程大概需要几十秒钟。接着进行安装:输入命令:mingw32-make install.可以将生成的插件考入对应Qt的目录。你可以查看下驱动目录师是否存在qsqlmysql.dll和libqsqlmysql4.a这两个文件,一般编译成功后就会有的。

此时编写程序会发现,还是没有发现mysql驱动。缺少引导文件。在考一个文件

就是之前你复制的那两个文件,在lib下有个libmysql.dll文件

\

将其复制到Qt的启动目录。跟前面打开方法一样,在桌面鼠标右击Qt的图标,打开文件位置,然后粘贴进去进行。

Get笔记
Get笔记

Get笔记,一款AI驱动的知识管理产品

下载

至此,mysql编译任务完成。

那怎么知道自己的配置是否成功了呢,最简单的就是写个简单的程序检测下。

建立一个QtGui Qpplication工程。注意包含sql模块(如果没有包含,建完工程后可以自工程中添加,不用担心)。一下是一个简单的测试程序:

需要添加的头文件:#include #include

 

    qDebug() << "Available drivers:";

    QStringList drivers = QSqlDatabase::drivers();

    foreach(QString driver, drivers)
        qDebug() << "\t "<< driver;

    qDebug() << "End";
把上面的程序写到main函数中即可。

 

若是配置成功,则在窗口下面会输出一下信息:

\

看见上面的QMYSQL了吧,说明已经检测到了mysql数据库驱动了。现在可以进行后面的操作了。

首先,为了进行连接数据库,必须创建数据库和数据表,怎么创建呢?这个原理还和大家熟知的sqlserver一样,只不过,稍微有点区别,可能是命令大家还不熟悉,任意新建一个文本文件,进行编辑:利用sql语句进行创建表,就创建一个简单的学生表吧。输入一下sql语句:

\

注意输入完成后保存文件,文件的后缀是.sql !!!!!

下一步是关键的时候,进行导入数据表。

\

按照上面的命令:show databses;---回车,即可看见当前的数据库名称。接下来创建数据库--这和我们在sqlserver中学的一样,

create databses mydatabse;

\

执行导入命令,将之前写好的创建数据表导入数据库中---

\

此次,完成了基本的任务,在这里只是创建了简单的一张表,可以根据你的需要自行创建数据表。

注:在执行source命令之前不许使用数据库,也就是说,你必须指定你要为哪个数据库导入表。

完成后,同样的方法,插入数据,也是在一个网文本文件中写好插入数据命令,然后执行导入命令.

以上步骤完成后,可以进行一个简单的连接数据库测试,检测是否能够连接上。

 

#include 
#include "widget.h"
#include 
#include 
#include 

bool creatconnect()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("student");
    db.setUserName("root");
    db.setPassword("123456");

    bool ok = db.open();//建立数据库连接

    if(!ok)
    {
        QMessageBox::critical(0,QObject::tr("连接数据库失败!!!"),db.lastError().text());
        return false;
    }
    else
    {
        QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("连接数据库成功!!!"));

        return true;
    }

}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec *codec = QTextCodec::codecForName("GB2312");

    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);


    if(!creatconnect())
    {
        return 1;
    }

    Widget w;
    w.show();
    return a.exec();
}
点击Run(运行)可以看见:

 

\\

可以看见查询的数据。

至此,所有简单的编译测试工作已经完成了。小伙伴们,快去试试你们的Qt和mysql吧。

 

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Rust 教程
Rust 教程

共28课时 | 3.9万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号