qt mysql 注册码_QT连接Oracle数据库并实现登录验证的操作步骤

目的:

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

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

操作步骤:

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

fe5cc0c9475bc166127597867cec8b4b.png

8ea9f1966cde4aa15fc212c0bbabac0d.png

77d58aafda967954e69afcae39b1777b.png

9cf2f6bccde8906da58d298406121a85.png

01660317bb64bd6a698aa295d9aca163.png

b817f4cf2651a67c71fe8912e71f0782.png

485ac42f94bd2319ce544b2d0c70ec8a.png

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

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

98c6e5bd45fe7a6d794933579c621825.png

2.2登录界面LoginForm设计

a62eea1ce5e0ae7f480760a6261995cd.png

2.3编写登录界面代码

LoginForm.h代码如下:

#ifndef LOGINFORM_H

#define LOGINFORM_H

#include

#include

#include

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

#include

#include

#include

#include

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()<

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() <

//数据库连接

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开始调试运行

d1935e87a592eb519ca1e1749d3d47df.png

4、代码地址:

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


版权声明:本文为weixin_39705018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。