QT连接MYSQL数据库的详细步骤


Posted in MySQL onJuly 07, 2021

 第一步要加入对应的数据库模块(sql)在工程文件(.pro)介绍几个类(也是对应的头文件)

  •  QSqlError提供SQL数据库错误信息的类
  •   QSqlQuery提供了执行和操作SQL语句的方法     
  • QSqlQueryDatabase 处理到数据库的连接  

 1.数据库的连接

//添加mysql数据库 
        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); 
        //连接数据库
        db.setHostName("127.0.0.1");//数据库服务器IP
        db.setUserName("root");  //数据库用户名
        db.setPassword("root");//数据库用户名密码
        db.setDatabaseName("sys"); //数据库名
        if(db.open()==false)
        {
            QMessageBox::information(this,"数据库打开失败",db.lastError().text());
            return;
        }

  如果失败可能是QT连接mysql数据库要一个库(自己下载  libmysql.dll)把库文件放在QT的安装目录D:\Qt\5.9\mingw53_32\bin(根据自己的目录) 我的QT版本是5.9。数据库是否打开用户是否错误是否有这个数据库。

2.创建表

QSqlQuery q;
q.exec("create table student(id int primary key auto_increment, name varchar(255), age int, score int)ENGINE=INNODB;");

3.给表插入数据

方法1(单行插入)

q.exec("insert into student(id, name, age,score) values(1, '张三', 24,80);");

方法2 (多行插入)又分为 odbc 风格 与 oracle风格

   1. odbc 风格

q.prepare("insert into student(name, age,score) values(?, ?, ?)");  //?是占位符
   QVariantList name;
   name<<"素数"<<"等待"<<"安安";
   QVariantList age;
   age<<-2<<12<<14;
   QVariantList score;
   score<<0<<89<<90;
   //给字段绑定相应的值 按顺序绑定
   q.addBindValue(name);
   q.addBindValue(age);
   q.addBindValue(score);
   //执行预处理命令
   q.execBatch();

  要加#include<QVariantList>头文件 字段要按顺序绑定

    2.orace风格d

//占位符 :+自定义名字
  q.prepare("insert into student(name, age,score) values(:n, :a,:s)");
  QVariantList name;
  name<<"夸克"<<"红米"<<"鸿蒙";
  QVariantList age;
  age<<5<<10<<3;
  QVariantList score;
  score<<77<<89<<99;
  //给字段绑定 顺序任意因为根据:+自定义名字
  q.bindValue(":n",name);
  q.bindValue(":s",score);
  q.bindValue(":a",age);
  //执行预处理命令
  q.execBatch();

 根据占位符区别所以字段顺序可以任意

3.更新表

QSqlQuery q;
        q.exec("update student set score=76 where name='李四'");

 4.删除表

QSqlQuery q;
        q.exec("delete from student  where name='张三'");

5.遍历表

QSqlQuery q;
    q.exec("select *from student");
    while(q.next())   //遍历完为false
    {
        //以下标
        //qDebug()<<q.value(0).toInt()<<q.value(1).toString()<<q.value(2).toInt() 
        <<q.value(3).toInt();
        //以字段
        qDebug()<<q.value("id").toInt()<<q.value("name").toString()<<q.value("age").toInt() 
        <<q.value("score").toInt();
    }

到此这篇关于QT连接MYSQL数据库的文章就介绍到这了,更多相关QT连接MYSQL数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
详解MySQL InnoDB存储引擎的内存管理
Apr 08 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
浅谈mysql增加索引不生效的几种情况
Jun 23 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
一文弄懂MySQL中redo log与binlog的区别
Feb 15 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
一文简单了解MySQL前缀索引
Apr 03 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL 数据 data 基本操作
May 04 MySQL
Mysql中常用的join连接方式
May 11 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
MySQL使用IF语句及用case语句对条件并结果进行判断 
Sep 23 MySQL
mysql备份策略的实现(全量备份+增量备份)
mysql定时自动备份数据库的方法步骤
通过shell脚本对mysql的增删改查及my.cnf的配置
Jul 07 #MySQL
MySQL一些常用高级SQL语句
MySQL系列之十四 MySQL的高可用实现
MySQL系列之十二 备份与恢复
Jul 02 #MySQL
MySQL系列之十一 日志记录
Jul 02 #MySQL
You might like
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
Python注释详解
2016/06/01 Python
python 网络编程详解及简单实例
2017/04/25 Python
Python Requests库基本用法示例
2018/08/20 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
Python类如何定义私有变量
2020/02/03 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
大学自我鉴定范文
2013/12/26 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
白血病捐款倡议书
2014/05/14 职场文书
死亡证明书样本说明
2014/10/18 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP