QT连接MYSQL

1.QT安装

                这里不做介绍,网上有很多。

               但 安装时,组件的选择时,第一个Qt 5.14.2中,编译器根据自己情况选择。sources之后的模块条件允许可以全部安装

               Tools选项中可不需更改,但有需要QT配置opencv的。需要勾选MinGW。WinGW位数根据opencv的选择

QT连接MYSQL_第1张图片

QT连接MYSQL_第2张图片


2.mysql安装

              安装参考下面这位博主连接:

MySQL 5.7 安装教程(全步骤、保姆级教程)_纸短情长ZF的博客-CSDN博客_mysql5.7安装


3.QT检测有哪些数据库驱动

                1.QT创建工程

                2.在工程文件.pro中加QT += sql

                3.窗口文件加#include头文件

                4.qDebug()<


4.使用QT编译出qsqlmysql.dll插件

        QT安装时,没有mysql的驱动,故需要个人通过qt的mysql文件编译出。以下为制作方法

        1.打开qt

                用qt打开mysql项目,mysql项目的地址是 qt安装目录下                 D:\QT\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql

                 注:此处地址根据自己安装的位置找:从Src之后是一样的


        2.修改mysql

                1.在mysql.por中加注释掉 # QMAKE_USE += mysql这行

                2.指定mysql编译库的路径,在mysql.por中加以下几行

# -L后面是库地址,-l后面是库名称
win32:LIBS += -LC:/Users/Administrator/Downloads/mysql-5.6.40-win32/lib -llibmysql
 		
INCLUDEPATH += C:/Users/Administrator/Downloads/mysql-5.6.40-win32/include
 
DEPENDPATH += C:/Users/Administrator/Downloads/mysql-5.6.40-win32/include

                注:1.以上三行根据自己的安装的sql路径更改,
                      2.路径中不能有空格。mysql的地址也不能有空格,不然可能会报找不到mysql.h的错误


        3.修改qsqldriverbase.pri 文件,把

include($$shadowed($$PWD)/qtsqldrivers-config.pri) 
改为 include(./configure.pri)		

                注:该文件在D:\QT\5.14.2\Src\qtbase\src\plugins\sqldrivers下


        4.编译修改后的mysql项目,并移动qsqlmysql.dll

                构建完成后会在 D:\plugins\sqldrivers 生成插件。然后把该文件下qsqlmysql.dll,复制到 qt安装目录下mingw53_32\plugins\sqldrivers中

                 注:D:\QT\5.14.2\mingw53_32根据自己安装文件位置选择

                         D:\plugins\sqldrivers也会根据安装的QT位置不同而不同,一般时QT安装的主目录下就会有plugins


        5.移动libmysql.dll、libmysqld.dll文件

                mysql.pro中填写的对应的mysql(mysql-5.6.40-win32\lib 版本可能不同)目录lib下面的libmysql.dll、libmysqld.dll复制,拷贝到相应的 qt安装目录下mingw53_32\bin ,mingw的版本名可能不一样,拷贝到下面的bin文件夹下即可


        6.代码测试

    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    //连接数据库
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setUserName("root");
    db.setPassword("123456");
    db.setDatabaseName("info");

    //打开数据库
    if(!db.open())
    {
        QMessageBox::warning(this,"错误",db.lastError().text());
        qDebug()<<"连接失败";       
         return;
    }
    else
    {
        qDebug()<<"连接成功";
    }

    QSqlQuery query;

    //创建数据库表
    query.exec("create table student(id int primary key,name varchar(255),age int,score int)");
    //增
    query.exec("insert into student(id,name,age,score) values(1,'like',18,59)");

你可能感兴趣的:(mysql,数据库)