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 08 MySQL
MySQL 全文索引使用指南
May 25 MySQL
一文读懂navicat for mysql基础知识
May 31 MySQL
SQL之各种join小结详细讲解
Aug 04 MySQL
mysql如何能有效防止删库跑路
Oct 05 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
如何避免mysql启动时错误及sock文件作用分析
Jan 22 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
mysql 获取时间方式
Mar 20 MySQL
进阶篇之linux环境下安装MySQL数据库
Apr 09 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
PHP4之COOKIE支持详解
2006/10/09 PHP
深入了解php4(2)--重访过去
2006/10/09 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
解析php类的注册与自动加载
2013/07/05 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
PHP的全局错误处理详解
2016/04/25 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
python绘制高斯曲线
2021/02/19 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
如何安装ruby on rails
2014/02/09 面试题
工商企业管理实习自我鉴定
2013/12/04 职场文书
中学门卫岗位职责
2013/12/26 职场文书
心得体会怎么写
2013/12/30 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书