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 Show Profile
Apr 05 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
解决Navicat for Mysql连接报错1251的问题(连接失败)
May 27 MySQL
MySQL为id选择合适的数据类型
Jun 07 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
MySQL数据库如何给表设置约束详解
Mar 13 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
MySQL的存储函数与存储过程的区别解析
Apr 08 MySQL
排查MySQL生产环境索引没有效果
Apr 11 MySQL
jdbc中自带MySQL 连接池实践示例
Jul 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扩展类型及安装方式解析
2020/04/27 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python pandas库的安装和创建
2019/01/10 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
餐厅销售主管职责范本
2014/02/19 职场文书
实习评语大全
2014/04/26 职场文书
经济管理自荐书
2014/06/09 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
报名委托书
2015/01/29 职场文书
指导老师鉴定意见
2015/06/05 职场文书
初中同学会致辞
2015/08/01 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
mysql sql常用语句大全
2022/06/21 MySQL
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS