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

目录

    • 一、项目介绍
    • 二、项目基本配置
      • 2.1 安装MySQL
      • 2.2 创建Qt项目
      • 2.3 移动libmysql.dll文件
    • 三、UI界面设计
    • 四、主程序实现
      • 4.1 pro文件
      • 4.2 main.cpp
    • 五、效果演示

一、项目介绍

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

二、项目基本配置

2.1 安装MySQL

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

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

net start mysql

即可启动MySQL服务。

2.2 创建Qt项目

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

2.3 移动libmysql.dll文件

如果不做任何操作时连接MySQL发现打印错误:
Qt实战案例(28)——利用QSQL相关类实现对MySQL数据库的基本操作及相关设置详解_第1张图片

这是因为缺少驱动文件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,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~

你可能感兴趣的:(Qt,MySQL,mysql,qt,数据库,c++,database)