Qt实战案例(28)——利用QSQL相关类实现对MySQL数据库的基本操作及相关设置详解

3 篇文章 1 订阅

一、项目介绍

利用QSQL相关类实现对MySQL数据库的基本操作详解。

二、项目基本配置

2.1 安装MySQL

下载安装MySQL的详细步骤可以参考:MySQL数据库的安装与卸载保姆级教程

如果是已经下载完成,则需要启动:
使用管理员权限打开命令提示符,输入:

net start mysql

即可启动MySQL服务。

2.2 创建Qt项目

新建一个Qt案例,项目名称为“SQLTest”,基类选择“QWidget”,取消创建UI界面复选框的选中状态,完成项目创建。

2.3 移动libmysql.dll文件

如果不做任何操作时连接MySQL发现打印错误:
在这里插入图片描述

这是因为缺少驱动文件libmysql.dll,该文件位于: MySQL文件夹的lib目录下
我这里位于:E:\mysql-8.0.26-winx64\lib目录下
方法1:
将libmysql.dll复制到Qt文件夹的bin目录下:
我这里是D:\Qt\6.1.0\mingw81_64\bin

方法2:
将libmysql.dll复制到Qt项目的debug或者release下

三、UI界面设计

无UI界面

四、主程序实现

4.1 pro文件

在SQLTest.pro文件中添加如下代码:

QT+=sql

4.2 main.cpp

【注】:在创建MySQL之前首先创建一个student的表:

create database student;

源文件main.cpp中代码如下:
首先需要创建MySQL数据库,然后激活与数据库的物理连接:

QSqlDatabase  db =  QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("localhost");      //如果填入localhost,则表示链接本地的数据库
db.setDatabaseName("student");       //要连接的数据库名
db.setUserName("root");
db.setPassword("123456");
db.setPort(3306);

创建数据库表:

if(db.open())
{
    QSqlQuery query;
    query.exec("DROP TABLE students");    //删除名为students的表
 
    query.exec("CREATE TABLE students("
               "id INT NOT NULL AUTO_INCREMENT,"
               "name VARCHAR(20) NOT NULL,"
               "sroce INT NOT NULL,"
               "class VARCHAR(20) NOT NULL,"
               "PRIMARY KEY (id) )ENGINE=InnoDB DEFAULT CHARSET=utf8;");
              //重新创建一个students表,标题分别为id、name、score、class
 
    query.exec("INSERT INTO students(name,sroce,class) VALUES ('小a', 85, '初2-1班')");
    query.exec("INSERT INTO students(name,sroce,class) VALUES ('小b', 15, '初2-2班')");
    query.exec("INSERT INTO students(name,sroce,class) VALUES ('小c', 35, '初2-3班')");  
}

五、效果演示

完整效果可以利用qDebug()输出显示,或者利用Navicat可视化工具查看。

如果没有看懂的话,完整代码可以参考:https://download.csdn.net/download/didi_ya/77286905


ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值