• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Qt编译mysql以及创建表后开展导入操作_mysql

mysql 搞代码 7年前 (2018-06-07) 219次浏览 已收录 0个评论

Qt编译mysql以及创建表后进行导入操作
       鉴于许多同学对Qt编译myql总是不能成功,出现各种问题,今天特此写出本教程,希望能够帮到需要的同学。
       首先,需要明白编译的目的和原理。

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

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

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

Qt编译mysql以及创建表后开展导入操作_mysql

一般需要两个就行了。

       原理:先看命令: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的安装目录,我的目录在这儿:

Qt编译mysql以及创建表后开展导入操作_mysql

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

Qt编译mysql以及创建表后开展导入操作_mysql  Qt编译mysql以及创建表后开展导入操作_mysql Qt编译mysql以及创建表后开展导入操作_mysql

Qt编译mysql以及创建表后开展导入操作_mysqlQt编译mysql以及创建表后开展导入操作_mysql

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

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

Qt编译mysql以及创建表后开展导入操作_mysql    Qt编译mysql以及创建表后开展导入操作_mysql

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

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

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

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

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

        至此,mysql编译任务完成。

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

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

需要添加的头文件:#include <QSqlDatabase>   #include <QDebug>

    qDebug() << "Available drivers:";      QStringList drivers = QSqlDatabase::drivers();      foreach(QString driver, drivers)         qDebug() << "/t "<< driver;      qDebug() << "End";

把上面的程序写到main函数中即可。

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

create databses  mydatabse;

Qt编译mysql以及创建表后开展导入操作_mysql

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

Qt编译mysql以及创建表后开展导入操作_mysql

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

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

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

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

#include <QApplication> #include "widget.h" #include <QMessageBox> #include <QSqlError> #include <QTextCodec>  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以及创建表后开展导入操作_mysql      Qt编译mysql以及创建表后开展导入操作_mysql

可以看见查询的数据。

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

      测试工程文件我已经上传了,大家可以下载源码。

http://download.csdn.net/detail/u013704336/8278693

        以上内容,纯属个人理解,若有任何问题,欢迎大家指出,共同学习。([email protected])

   


2楼w592160967昨天 20:36
终于找到你的账号了….
1楼w592160967昨天 20:36
棋哥就是不一样…

欢迎大家阅读《Qt编译mysql以及创建表后开展导入操作_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Qt编译mysql以及创建表后开展导入操作_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址