基于QT5.12.2的MySql5.7.23的增删改查功能

前面已经实现了连接数据库的功能,现在开始对数据库进行基础的操作“增删改查”。下面开始代码的演示的注释。如有什么问题可以在评论区回复或者私聊,如有大神看到有什么缺陷也欢迎指出问题所在,作为刚入门不久的我来说,很高兴能发现自己的问题。

1:创建数据表

在这里说一下C++的一点强大之处。
先简单的介绍一下C++吧;C++是一个面向过程和面向对象的语言,在学校一开始学习的是C,C是一个面向过程的语言。
C++和C比较有一点是比C好多,这个可以很明显的看出来,和感受出来,C语言,它的变量都是在函数的开始定义的,不能在九条语句之后定义或者中间定义,这个有点感觉不怎么方便,但是C++却可以在任何地方定义一个变量,这一点就是比C好。
当然,如果习惯了C后,这一点可能会有点不怎么习惯,因为C用多了之后看那些在函数内随处定义变量的话会感觉有一点很不爽,因为感觉影响了代码的观赏性,这一点作为准备毕业的我都感受到了,所以前期在学习QT和C++的时候看例程就是有一点不适应,这只是我的一个个人感觉哈,哈哈哈。
下面结束发表个人感受,开始进入正题。

代码和注释如下:

    //编写创建数据表的命令并转成字符串
    QString sql;
    sql = "CREATE TABLE test (";
    sql += "id int NOT NULL auto_increment,";
    sql += "name varchar(20),";
    sql += "password varchar(20),";
    sql += "primary key(id))";
    //准备执行命令
    query.prepare(sql);
    //开始执行命令,并返回一个值给bool类型的变量作为判断是否成功创建,方便查找错误
    bool ok = query.exec();
    if(!ok)
    {
        qDebug()<<"创建失败"<<query.lastError().text();
    }
    else
        qDebug()<<"创建成功"<<"successful";

编写完之后开始测试:
在这里插入图片描述
很开心,创建成功了。庆祝第一步的成功,撒花!!!
在这里先开心一会,免得在确认的时候没有机会开心了。
下面去cmd后台去确认一下数据表是否创建成功。步骤在上一章已经说过了:
在这里插入图片描述
行了,这就很nice了,离成功更近一步了。

2:添加新成员

下面是代码及注释:

    //开始获取编辑输入框的内容
    QString name = ui->registnamelineEdit->text();
    QString TEST;
    QString password = ui->registpasswordlineEdit->text();
    QString confirmpassword = ui->confirmpasswordlineEdit->text();
    //这里只是做个简单的逻辑判断,不能添加空字符进来作为成员属性
    if(name == nullptr || password == nullptr || confirmpassword == nullptr)
    {
        QMessageBox::warning(this,"账号或者密码不能为空","warning");
        return;
    }


    if(password != confirmpassword)
    {
        QMessageBox::warning(this,"密码不统一","Regist failure");
        return;
    }
    //把MySql的增加成员命令和成员属性转化成字符串
    QString str = QString("insert into test(name, password) values('%1', '%2')").arg(name).arg(password);
    //开始执行字符串里面的命令,这里执行相当于在cmd后台执行命令类似
    query.exec(str);
    //执行查询所有成员属性命令
    query.exec("select * from test");
    while(query.next())
    {
    	//打印出添加成功后的成员属性ID主键值
        TEST = query.value(0).toString();
        qDebug()<<TEST;
    }

下面这里就是简单的测试结果:
在这里插入图片描述
在这里插入图片描述

dow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA0Nzg0NA==,size_16,color_FFFFFF,t_70)
去后台再确认一下是否添加成功。
在这里插入图片描述

添加成功!!!撒花庆祝。

3:修改指定的成员属性

前面完成了两步了,这里再实现一个功能,修改指定成员的属性,加油,为努力学习的自己鼓气。
代码及注释如下:

    //定义用于承载想要修改的数据字符串变量。
    bool ok;
    QString name = "name=";
    name += ui->AmendNamelineEdit->text();
    
    QString password = "password=";
    password += ui->AmendPasslineEdit->text();

    QString id = "id=";
    id += ui->AmendIDlineEdit->text();

    QString TEST;
    //简单判断一下逻辑,预防非法输入
    if(name == nullptr && password == nullptr )
    {
        QMessageBox::warning(this,"账号和密码不能为空","warning");
        return;
    }
    //定义一个承载修改指定成员属性的命令,这个函数也是挺强大,把一些方便的功能封装成一个对象可以直接调用使用,很方便。有点像C里面那个sprintf。
    QString str = QString("update test set %1,%2 where %3;").arg(name).arg(password).arg(id);
    //开始执行命令。并返回一个值用于判断是否修改成功。
    ok = query.exec(str);
    if(!ok)
        qDebug()<<"修改失败"<<query.lastError().text();
    else
        qDebug()<<"修改成功"<<"successful";
    //开始执行查询表格中所有的成员属性
    query.exec("select * from test");
    while(query.next())
    {
    	//打印出表格内的属性
        qDebug()<<query.value(1).toString()<<query.value(2).toString();
    }

下面开始测试代码是否实现了功能。
在这里插入图片描述
NICE,修改成功,离成功之路又进了一步。
当然,要严谨一点,去cmd后台确认一下是否修改成功。
在这里插入图片描述
我感觉离我的霸道即邪恶的梦想又近了一步。

4:查询指定的成员

开始代码:
当然,还有注释,方便小伙伴们看懂。

    //和前面一样,这里就不废话那么多了。
    ui->textEdit->clear();
    QString id = "id=";
    id += ui->IDlineEdit->text();
    //这里要提醒大家要注意一下这些命令的使用,其实命令的使用也不只是这种而已。
    //还有很多种表达的方式,程序就是把自己的想法用语言来表现出来.
    //大家可以根据自己的代码习惯来编写出属于自己的代码。
    QString str = QString("select * from test where %1").arg(id);
    //和前面一样,这里就不废话那么多了。
    query.exec(str);
    while(query.next())
    {
        
        //后面我就都不说,基本都一样的流程。我就直接上代码和测试结果让大家查看了。
        qDebug()<<query.value(0).toString()<<query.value(1).toString()<<query.value(2).toString();
        id = query.value(0).toString();
        QString name = query.value(1).toString();
        QString password =  query.value(2).toString();
        ui->textEdit->append(id);
        ui->textEdit->append(name);
        ui->textEdit->append(password);
    }

测试结果:
在ID输入框输入想要查询的成员的ID值,然后在显示框内显示出来,
并且还会在QT中打印出来。
在这里插入图片描述在这里插入图片描述

5:删除指定的成员

代码:

    QString id = "id=";
    id += ui->DeIdlineEdit->text();

    QString str = QString("delete from test where %1;").arg(id);
    query.exec(str);

    query.exec("select * from test");
    while(query.next())
    {
        QString id = query.value(0).toString();
        QString name = query.value(1).toString();
        QString pass = query.value(2).toString();
        ui->DeletetextEdit->append("id:"+id);
        ui->DeletetextEdit->append("name:"+name);
        ui->DeletetextEdit->append("password:"+pass);
    }

测试结果:
这里为了方便查看效果,我又增加了两个新的成员,然后删除指定的一个成员并显示出来。
这个是还没开始删除的显示框。
在这里插入图片描述
开始删除:
在这里插入图片描述
cmd后台查询删除结果:
在这里插入图片描述
这里可以开香槟开始真正意义的庆祝自己了,前面都是鼓励自己前进的。已经圆满实现了基于QT的MySql数据库的增删改查。

在这里自己也实现了小时候自己的那个梦想了,当不开心的时候想*掉谁就 * 掉谁,哈哈哈。
过一把管理员的爽。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值