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 相关文章推荐
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
Apr 05 MySQL
MySQL infobright的安装步骤
Apr 07 MySQL
mysql的MVCC多版本并发控制的实现
Apr 14 MySQL
MySQL查看表和清空表的常用命令总结
May 26 MySQL
MYSQL主从数据库同步备份配置的方法
May 26 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
MySQL笔记 —SQL运算符
Jan 18 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
分享几个简单MySQL优化小妙招
Mar 31 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
MySQL数据库之存储过程 procedure
Jun 16 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中for循环语句的几种变型
2007/03/16 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
javascript五图轮播切换实用版
2012/08/17 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
详解JS数值Number类型
2018/02/07 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
python next()和iter()函数原理解析
2020/02/07 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
思想专业自荐信范文
2013/12/25 职场文书
业务员简历自我评价
2014/03/06 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
学党史心得体会
2014/09/05 职场文书
房屋出租委托书格式
2014/09/23 职场文书
社区义诊通知
2015/04/24 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
四群教育工作总结
2015/08/10 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
配置nginx负载均衡
2022/05/06 Servers
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers
LeetCode189轮转数组python示例
2022/08/05 Python