• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    QT连接Oracle数据库并实现登录验证的操作步骤

    目的:

    本文实现QT登录界面,输入账号和密码后,系统连接Oracle数据进行判断账号和密码(MD5加密)是否和数据库一致,如果一致则提示登录成功。

    开发环境:Windows10+QT5.14.2+Oracle11G R2

    操作步骤:

    1、打开QT软件,创建一个新的Application项目

    2、设计界面并修改代码:

    2.1修改项目配置文件,添加sql字符串表示要对数据库进行操作。

    2.2登录界面LoginForm设计

    2.3编写登录界面代码

    LoginForm.h代码如下:

    #ifndef LOGINFORM_H
    #define LOGINFORM_H
    
    #include QMainWindow>
    #include QSqlDatabase>
    #include QSqlQuery>
    
    
    QT_BEGIN_NAMESPACE
    namespace Ui { class LoginForm; }
    QT_END_NAMESPACE
    
    class LoginForm : public QMainWindow
    {
     Q_OBJECT
    
    public:
     LoginForm(QWidget *parent = nullptr);
     ~LoginForm();
    
     void initsql(); //初始化数据库
    
    private slots:
     void on_pushButton_clicked();
    
     QString encrypt(const QString str);//自定义加密函数
    
    private:
     Ui::LoginForm *ui;
     QSqlDatabase db;
     QSqlQuery *query;
    };
    #endif // LOGINFORM_H
    #include "loginform.h"
    #include "ui_loginform.h"
    
    #include QStackedWidget>
    #include QMessageBox>
    #include QDebug>
    #include QWidget>
    #include QCryptographicHash>
    
    
    LoginForm::LoginForm(QWidget *parent)
     : QMainWindow(parent)
     , ui(new Ui::LoginForm)
    {
     ui->setupUi(this);
    
     initsql();//打开数据库连接
    }
    
    LoginForm::~LoginForm()
    {
     delete ui;
    }
    
    
    //登录验证账号密码是否正确
    void LoginForm::on_pushButton_clicked()
    {
     //获得用户和密码
     QString name=ui->lineEdit->text();
     QString password=ui->lineEdit_2->text();
    
     QByteArray ba = password.toUtf8();
     QByteArray md5Password = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5).toHex();
    
     QString str=QString("select * from USER where UserName='%1' and Password='%2'").arg(name).arg(encrypt(password));
     qDebug()str;
     query=new QSqlQuery;
     query->exec(str);
     query->last();
     int record=query->at()+1;
     if(record==0){
      QMessageBox::information(this,"提示","用户或密码不对",QMessageBox::Ok);
     }
     else{
    
      QMessageBox::information(this,"提示","系统登录成功",QMessageBox::Ok);
     }
    
    }
    //MD5加密函数
    QString LoginForm::encrypt(const QString str)
    {
     //字符串MD5算法加密
     QByteArray btArray;
    
     btArray.append(str);//加入原始字符串
    
     QCryptographicHash hash(QCryptographicHash::Md5); //Md5加密算法
    
     hash.addData(btArray); //添加数据到加密哈希值
    
     QByteArray resultArray =hash.result(); //返回最终的哈希值
    
     QString md5 =resultArray.toHex();//转换为16进制字符串
    
     return md5.toUpper();
    }
    //初始化打开数据库连接
    void LoginForm::initsql()
    {
     /*若输出列表中出现QOCI8和QOCI,则表示驱动加载成功*/
     QStringList drivers = QSqlDatabase::drivers();
     foreach(QString driver, drivers)
     qDebug() "\t"  driver;
    
     //数据库连接
     db = QSqlDatabase::addDatabase("QOCI");
     db.setHostName("192.168.1.100");//数据库服务器ip
     db.setPort(1521);//数据库端口号
     db.setDatabaseName("orcl");//数据库名称
     db.setUserName("dbUserName");//数据库用户名
     db.setPassword("dbUserPassword");//数据库密码
     db.open();
    
    }

    3、按F5开始调试运行

    4、代码地址:

    https://codechina.csdn.net/xqf222/qtlogin/

    到此这篇关于QT连接Oracle数据库并实现登录验证的操作步骤的文章就介绍到这了,更多相关QT连接Oracle数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • docker配置openGauss数据库的方法详解
    • PyQt中使用QtSql连接MySql数据库的方法
    • ubuntu linux下使用Qt连接MySQL数据库的方法
    • 通过Qt连接OpenGauss数据库的详细教程
    上一篇:Oracle 生成未来三天的整点时间(步骤详解)
    下一篇:Oracle生成随机数字、字符串、日期、验证码及 UUID的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    QT连接Oracle数据库并实现登录验证的操作步骤 连接,Oracle,数据库,并,实现,