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 pt-slave-restart工具的使用简介
Apr 07 MySQL
详解GaussDB for MySQL性能优化
May 18 MySQL
详解MySQL中的主键与事务
May 27 MySQL
浅析MySQL如何实现事务隔离
Jun 26 MySQL
SQL之各种join小结详细讲解
Aug 04 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
MySQL学习之基础操作总结
Mar 19 MySQL
mysql中DCL常用的用户和权限控制
Mar 31 MySQL
Mysql查询时间区间日期列表,不会由于数据表数据影响
Apr 19 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 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回溯法解决0-1背包问题实例分析
2015/03/23 PHP
php实现对象克隆的方法
2015/06/20 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
js函数的引用, 关于内存的开销
2012/09/17 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
express 项目分层实践详解
2018/12/10 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python list多级排序知识点总结
2019/10/23 Python
Python实现自动访问网页的例子
2020/02/21 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
经典大学生求职信范文
2014/01/06 职场文书
学生思想表现的评语
2014/01/30 职场文书
家长给小学生的评语
2014/01/30 职场文书
室内拓展活动方案
2014/02/13 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
公司外出活动方案
2014/08/14 职场文书
公务员个人总结
2015/02/12 职场文书
元旦晚会开场白
2015/05/29 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书