QT连接MYSQL数据库的详细步骤

 更新时间:2021年07月07日 14:40:59   作者:牛牛ly  
这篇文章主要介绍了QT连接MYSQL数据库的详细步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

 第一步要加入对应的数据库模块(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命令行连接方式

    这篇文章主要介绍了MySQL命令行连接方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • MySql增量恢复的几种实现方法

    MySql增量恢复的几种实现方法

    本文主要介绍了MySql增量恢复的几种实现方法,通过增量备份与恢复,可以在系统发生故障或数据损坏时快速恢复到最新状态,提高系统的可靠性和可用性,感兴趣的可以了解一下
    2023-08-08
  • Win7下mysql5.5安装图文教程

    Win7下mysql5.5安装图文教程

    这篇文章主要为大家详细介绍了Win7下mysql5.5安装的图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • mysql解压包的安装基础教程

    mysql解压包的安装基础教程

    这篇文章主要为大家详细介绍了mysql解压包的安装基础教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Mysql中Identity 详细介绍

    Mysql中Identity 详细介绍

    这篇文章主要介绍了Mysql中Identity 的相关资料,并附示例代码,需要的朋友可以参考下
    2016-09-09
  • 听说mysql中的join很慢?是你用的姿势不对吧

    听说mysql中的join很慢?是你用的姿势不对吧

    这篇文章主要介绍了听说mysql中的join很慢?是你用的姿势不对吧,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • 在Docker中使用MySQL的教程

    在Docker中使用MySQL的教程

    这篇文章主要介绍了在Docker中使用MySQL的教程,介绍了简单的内部搭建步骤,需要的朋友可以参考下
    2015-04-04
  • MySQL日志管理详解

    MySQL日志管理详解

    这篇文章主要介绍了MySQL日志管理详解,本文讲解了日志种类、日志功能、MySQL中日志相关常用的服务器变量说明等内容,需要的朋友可以参考下
    2015-07-07
  • MySQL的自增ID(主键) 用完了的解决方法

    MySQL的自增ID(主键) 用完了的解决方法

    这篇文章主要介绍了MySQL的自增ID(主键) 用完了的解决方法,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • 解决Mysql5.7中文乱码的问题

    解决Mysql5.7中文乱码的问题

    在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢,下面小编给大家分享下解决方案
    2017-03-03

最新评论