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 22 MySQL
浅谈Mysql多表连接查询的执行细节
Apr 24 MySQL
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
详解MySQL数据库千万级数据查询和存储
May 18 MySQL
新手入门Mysql--概念
Jun 18 MySQL
mysql联合索引的使用规则
Jun 23 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
MySQL系列之四 SQL语法
Jul 02 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 MySQL
MySQL 原理优化之Group By的优化技巧
Aug 14 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中mysql连接方式PDO使用详解
2015/02/25 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
div层的移动及性能优化
2010/11/16 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
Python 迭代器工具包【推荐】
2016/05/06 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
用python对oracle进行简单性能测试
2020/12/05 Python
新年联欢会主持词
2014/03/27 职场文书
社会实践评语
2014/04/28 职场文书
本科毕业生求职信
2014/06/15 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
2014年妇联工作总结
2014/11/21 职场文书
2014年信用社工作总结
2014/11/25 职场文书
中秋节感想
2015/08/10 职场文书
聘任书范文大全
2015/09/21 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
《灰雀》教学反思
2016/02/19 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书