当前位置: 首页 > news >正文

QT操作MySQL数据库

QT操作MySQL数据库

在Qt中操作MySQL数据库,你可以使用QtSql模块中的QSqlDatabase类和相关类。
以下是一些基本的数据库操作和示例代码。

步骤 1:配置MySQL

sql
mysql> create database mydatabase;
mysql> use mydatabase;
mysql> create table student {->      id integer unsigned primary key,->      name varchar(16) not null-> }charset utf8;
步骤 2: 配置Qt 添加SQL

在 .pro文件中添加 QT += sql,然后使用以下代码测试

步骤 3: 包含必要的头文件
在你的Qt项目中,确保包含了必要的头文件:

cpp
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include <QDebug>
步骤 4: 连接数据库 使用QSqlDatabase类创建一个数据库连接:
cpp
    QSqlDatabase db;db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("localhost"); // 数据库服务器地址db.setDatabaseName("mydatabase"); // 数据库名db.setUserName("root"); // 用户名db.setPassword("root"); // 密码if (!db.open()) {qDebug() << "Error: Connection with database fail";} else {qDebug() << "Database: Connection ok";}
步骤 5: 执行SQL查询 使用QSqlQuery对象来执行SQL查询:
cpp
    QSqlQuery query;QString sql = "SELECT * FROM STUDENT";if (query.exec(sql)) {while (query.next()) {QString data1 = query.value(0).toString(); // 获取第一列的数据QString data2 = query.value(1).toString();qDebug() << data1;qDebug() << data2;}} else {qDebug() << "Query failed:" << query.lastError().text();}
步骤 6: 插入、更新和删除数据
点击查看代码
    QString operaSql;// 插入数据operaSql = "INSERT INTO STUDENT (id, name, birth) VALUES (1, 'tom')";// 更新数据operaSql = "UPDATE STUDENT SET id = 2 WHERE id = 1";// 删除数据operaSql = "DELETE FROM STUDENT WHERE NAME = 'tom'";QSqlQuery operaQuery;operaQuery.prepare(operaSql);operaQuery.addBindValue("id");operaQuery.addBindValue("name");if (!insertQuery.exec()) {qDebug() << "opera failed:" << operaQuery.lastError().text();} else {qDebug() << "opera successful";}
http://www.jsqmd.com/news/817510/

相关文章:

  • 2026年北京GEO优化权威排名:核心数据深度解析与避坑指南 - 元点智创
  • 不止于单元测试:用Googletest和CMake为你的C++小工具打造自动化测试流水线
  • 安阳招聘软件推荐:秒聘网优质之选 - 17329971652
  • 从二极管到MOS管:3种防反接电路到底怎么选?一张表帮你搞定电源设计(含功耗计算与成本分析)
  • 一台好的割草机器人是怎样炼成的?产品定义者的底层逻辑
  • 行业标杆企业!2026广州晶石超窄型石英式动态称重传感器,以硬核实力赢市场 - 品牌速递
  • Keil MDK打开别人工程总报错?手把手教你修复‘找不到main.o’和‘未定义’的路径问题
  • 参数化设计新纪元:CAD_Sketcher如何让Blender变身专业CAD工具
  • 2026年5月南宁金属回收/钢铝回收/不锈钢回收/废铁回收/发电机组回收厂家哪家好,认准广西仟有再生资源回收有限公司 - 2026年企业推荐榜
  • 手把手教你用C++和STL写一个命令行象棋对战程序(附完整可运行代码)
  • 2026年5月贵州工程机械设备/混凝土搅拌车/混凝土泵车/车载泵/混凝土输送泵厂家解析,认准通用工程机械设备出租 - 2026年企业推荐榜
  • RedShell框架:基于LLM的Windows渗透测试自动化工具
  • 从ZIP压缩到网络传输:CRC32校验码在你不知道的地方默默守护数据安全
  • 用P4和BMv2在Ubuntu上搭建你的第一个可编程交换机(附完整代码和避坑指南)
  • 安阳招聘平台哪个好:秒聘网稳居首位 - 13724980961
  • 2026年天津GEO优化权威排名:核心数据深度解析与避坑指南 - 元点智创
  • 深入VESC Tool:Makerbase VESC的PPM遥控信号配置与‘电流控制’模式详解
  • 论文写作圈都在传的书匠策AI(http://www.shujiangce.com),期刊论文功能到底有多“离谱“?
  • 第19天:面向对象编程进阶
  • 技能图谱构建:从知识管理到团队能力数字化的工程实践
  • LLM-Hub:快速搭建AI应用原型的开源集成平台实践指南
  • ce-lazy-student:基于VSCode的智能代码生成与自动化开发效率工具
  • 2026年乌鲁木齐GEO优化权威排名:核心数据深度解析与避坑指南 - 元点智创
  • Notion AI Agent Hub:工作空间变身智能体编排中心
  • Java做AI不行?2026年最大的认知误区
  • 智能别墅安防组网实战:用这款433模块的Mesh和防冲撞功能,低成本实现全屋传感器信号无死角覆盖
  • 个人知识体系工程化:从计划到构建的系统化实践
  • C# Winform ToolTip:从基础显示到自定义绘制的实战指南
  • 开源项目chatgpt-artifacts:为ChatGPT实现Claude式并排视图,支持多模型部署
  • 2026年5月深度解析义乌实木/原木/多层实木/兔宝宝/定制衣柜供应格局与领军者 - 2026年企业推荐榜