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 联合查询优化机制
May 10 MySQL
详解Mysql和Oracle之间的误区
May 18 MySQL
详解MySQL数据库千万级数据查询和存储
May 18 MySQL
MySQL中VARCHAR与CHAR格式数据的区别
May 26 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
MySQL中连接查询和子查询的问题
Sep 04 MySQL
关于MySQL中的 like操作符详情
Nov 17 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
详解MySQL的主键查询为什么这么快
Apr 03 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 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 header函数分析详解
2011/08/06 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
javascript html 静态页面传参数
2009/04/10 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
简单的js表格操作
2016/09/24 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
python的unittest测试类代码实例
2017/12/07 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python3如何判断三角形的类型
2020/04/12 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
会计电算化学生个人的自我评价
2014/02/08 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
财产分割协议书
2016/03/22 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技