Qt5.9Creator读写Mysql5.7.17数据库详细例子(数据库基本操作:创建表,查询,插入,删除,修改)

 

本文章主要总结的内容是用Qt5.9Creator工程读写Mysql5.7.17数据库。具体的操作步骤如下所述。

一、用Qt5.9的Creator创建一个Console工程,选择MinGW32编译器。

二、添加代码

2.1创建好工程后,在.pro文件里面,添加如下代码:(直接复制就行)

QT+=sql

 

2.2在main.cpp文件,添加如下代码:(直接复制就行)

#include <QCoreApplication>
#include <QSqlDriver>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>

QSqlDatabase db;

int main(int argc,char *argv[])
{
       QCoreApplication a(argc,argv);

       //连接数据库
       db = QSqlDatabase::addDatabase("QMYSQL");
       db.setHostName("localhost");//连接本地的Mysql数据库,如果是远程的remote,需要输入对应的IP:"127.0.0.1"
       db.setDatabaseName("nengxin");//默认连接的数据库名称为nengxin,后面的例子在名称为nengxin的数据库里面,创建了一个名称为student的表
       db.setUserName("root");//数据库登录用户名
        db.setPassword("admin");//数据库登录密码
       if(!db.open())//连接数据库,成功显示open success,否则显示Failed to connect to root mysql admin
           qDebug()<<"Failed to connect to root mysql admin";
       else qDebug()<<"open success!";

      //创建查询对象
       QSqlQuery query(db);//实例一个查询对象,该查询对象主要对刚刚连接的db数据库进行操作

      //创建一个student表,表的列标题从左到右分别为id,name。
      //primary key表示主键,是唯一的,不可重复。id后面跟着primary key表示该id是唯一的,一般查询根据这个id号进行查询
      //varchar(20)表示name变量为char,最大字节为20BYTE,但是是可变的,根据输入的内容进行调整
      query.exec("create table student(id int primary key,"
                      "name varchar(20))");

      //插入内容语句,创建表格时插入
      query.exec("insert into nengxin.student values(1,'first')");//在数据库中,可能会出错,但是在Qt中却没有出错
      query.exec("insert into nengxin.student values(2,'second')");

     //插入内容语句:创建好表格后,插入一行语句
     //在数据库中,需要把单引号变为双引号,即:'first'变为"first"
     query.exec("insert into nengxin.student(id,name) values(40,'ABC')");//这条语句绝对可用,经过我亲自测试十几次

       //修改一行内容语句(更新语句)
      query.exec("update nengxin.student set name='zhang' where id=1");

      //删除一行内容语句
      query.exec("delete from nengxin.student where id>=2");

      //必须创建好表后,才能对列进行操作
      //插入一列内容语句
      query.exec("alter table nengxin.student add address char(60)");//在表列的后面增加一列,列明为address
      query.exec("alter table nengxin.student add address123 char(60)");
      query.exec("alter table nengxin.student add age tinyint unsigned after name");//在列名称为name的后面增加一列,列名称为age
      
    //删除一列内容语句
      query.exec("alter table nengxin.student drop address123");//在表的后面删除一列

      //修改列的类型或者名称
      query.exec("alter table nengxin.student change name name varchar(30)");//将列名称name改为name varchar(30)类型

      //修改表名称drop table nengxin.mqtt
      query.exec("alter table nengxin.student rename nengxin.student1");//将表nengxin.student名称修改为nengxin.student1
      query.exec("alter table nengxin.student1 rename nengxin.student");//将表nengxin.student1名称修改为nengxin.student

      //遍历数据库(查询数据库表nengxin.student每一行的内容,并且输出)
      query.exec("SELECT * FROM nengxin.student where id>=0");//代表选择id=3的一行内容
      while(query.next())//遍历数据表nengxin.student每一行,从第0行到最后一行
      {     
 quint32 id = query.value(0).toInt();//value(0),0代表第几列的值。在该例中,代表id=3的行,第0列
          QString name = query.value(1).toString();
          QString age = query.value(2).toString();
          QString address = query.value(3).toString();
          qDebug()<<id<<name<<age<<address;//输出MySql数据库表mqtt.a10001中id=3的MAC和state
      } 
      //删除整张表
      //query.exec("drop table nengxin.student");//解除注释直接删除创建的表格

    db.close();//关闭数据库
      return a.exec();
}

 

三、程序构建运行后,结果如下图所示:

图1  程序运行结果

 

 

图2  Mysql5.7.17数据库

 

由图1可知,上述代码可以正常连接Mysql5.7.17数据库。由图1和图2可以看出,上述代码连接数据库后,可以对数据库进行读写操作。其中图1为输出nengxin.student表的内容。



参考内容:

http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#d13

http://www.qter.org/portal.php?mod=view&aid=54

  • 12
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值