QT--Qt连接MySQL

本文为学习记录,若有错误,请联系作者,谦虚受教。


前言

知足且上进 温柔且坚定


一、下载MYSQL数据库

1.下载安装MYSQL

在MYSQL的官网MYSQL官网中下载对应的版本号,如图。

在这里插入图片描述
温馨提示:如果自己的QT是32位的,MYSQL数据库最好是下载32位的。避免后续连接不上。
(1)安装步骤自行查询。
(2)点击MYSQL的Command line client命令,输入自己安装时设置的密码,这里是root。出现如图即安装成功。
在这里插入图片描述

二、连接方式一

直接通过QT自带的MYSQL驱动连接数据库。
在.pro文件中添加

QT +=sql

在.CPP文件中

    //创建一个数据库连接,指定数据库驱动
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    //数据库连接所需要设置的信息
    db.setHostName("127.0.0.1");//本地电脑数据库服务器IP
    db.setDatabaseName("mysql");//数据库名字
    db.setUserName("root");//数据库用户名
    db.setPassword("root");//数据库密码
    db.setPort(3306);//数据库端口号
   //连接数据库
    bool ok=db.open();
    if(ok)
    {
        qDebug()<<"success";
    }
    else {
        qDebug()<<"fail!";
    }

顺利的话,会直接显示
在这里插入图片描述
不顺利的话就需要通过ODBC来连接数据库。

三、连接方式二

1.下载ODBC

在MYSQL官网中下载对应版本的ODBC下载链接,例如这边的QT是32位的,数据库是32位的,所以ODBC是下载32位的。如果需要的话可以两个都下载安装。
在这里插入图片描述
下载安装好后,在搜索栏输入“ODBC”,ENTER回车,打开页面。
点击“添加”,选择添加的’MYSQL’。点击完成。
在这里插入图片描述
此页面就出现刚刚添加的。
在这里插入图片描述
此时就可以编译程序,执行可连接数据库。

2.连接方式二

通过ODBC驱动来连接数据库。
在.pro文件中添加

QT +=sql

在.CPP文件中

   //利用ODBC来驱动QT和数据库的连接
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
        db.setHostName("127.0.0.1");//本地电脑数据库服务器IP
        db.setPort(3306);//数据库端口号
        db.setDatabaseName("2");//自己设置ODBC中用户数据源名字,已设置2
        db.setUserName("root");//数据库的用户名
        db.setPassword("root");//数据库的密码
        bool ok = db.open();
        if (ok){
            QMessageBox::information(this, "infor", "success");
        }
        else {
            QMessageBox::information(this, "infor", "open failed");
            qDebug()<<"error open database because"<<db.lastError().text();//打印连接失败的原因
        }
}

执行显示
在这里插入图片描述
表示QT连接数据库成功。


出现错误:驱动程序和应用程序体系结构不匹配,不能连接!

温馨提示:如果下载安装ODBC后,运行程序,输出如下提示,表示你的编译器和ODBC的版本不对应,ODBC这里是下载的64位。而QT是32位的mingw32,所以出现了这种情况。

在这里插入图片描述
解决办法:将QT的编译器切换成64位的,可解决问题。
在这里插入图片描述

总结

善于总结,多进一步。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值