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主从复制断开的常用修复方法
Apr 07 MySQL
mysql对于模糊查询like的一些汇总
May 09 MySQL
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
Mysql基础知识点汇总
May 26 MySQL
Mysql数据库命令大全
May 26 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
MySQL笔记 —SQL运算符
Jan 18 MySQL
Mysql分析设计表主键为何不用uuid
Mar 31 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
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实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
PHP异常处理浅析
2015/05/12 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
jquery文字上下滚动的实现方法
2013/03/22 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
销售演讲稿范文
2014/01/08 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
社区工作者演讲稿
2014/05/23 职场文书
病人慰问信范文
2015/02/15 职场文书
独生子女证明范本
2015/06/19 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
详解Python如何批量采集京东商品数据流程
2022/01/22 Python