QT连接Oracle数据库并实现登录验证的操作步骤_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数据库内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:asp.net使用ODP即oracle连接方式的的防注入登录验证程序php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】Android登录注册功能 数据库SQLite验证

  • 本文相关:
  • linux一键部署oracle安装环境脚本(推荐)
  • oracle删除archivelog文件的正确方法
  • oracle数据库中ora-12899错误的解决方法
  • oracle数据库系统紧急故障处理方法
  • pl/sql number型数据
  • oracle select执行顺序的详解
  • oracle 触发器 学习笔记
  • 最简单的oracle数据恢复 select as of使用方法
  • 解析oracle查询和删除job的sql
  • 解析oracle 8i/9i的计划稳定性
  • Qt连接Oracle数据库
  • 用pro*c/c++ 和qt creator工具让C++连接Oracle数据...
  • qt生成的可执行文件和oracle数据库连接问题
  • Qt连接Oracle 必须装客户端吗
  • qt 连接 oracle for linux
  • Qt程序远程访问Oracle数据库,该怎么处理
  • QT能用odbc方式连接oracle11g的数据库吗?
  • 用qt怎么备份Oracle数据库
  • W7下Qt连接Oracle数据库错误怎么解决
  • ubuntu下Qt连接oracle的驱动怎么写
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页asp.net使用odp即oracle连接方式的的防注入登录验证程序php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能php登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】android登录注册功能 数据库sqlite验证linux一键部署oracle安装环境脚本(推荐)oracle删除archivelog文件的正确方法oracle数据库系统紧急故障处理方法pl/sql number型数据oracle select执行顺序的详解oracle 触发器 学习笔记最简单的oracle数据恢复 select as of使用方法解析oracle查询和删除job的sql解析oracle 8i/9i的计划稳定性oracle 查看表空间的大小及使用情linux系统(x64)安装oracle11g完oracle数据库下载及安装图文操作oracle存储过程基本语法介绍oracle 10g 安装教程[图文]oracle 如何查询被锁定表及如何解基于ora-12170 tns 连接超时解决oracle中to_date详细用法示例(ororacle数据库tns配置方法详解oracle 创建表空间详细介绍oracle数据库自动备份脚本分享(超实用)oracle 11g密码180天过期后的修改方法windows server 2012 安装oracle11g(图文oracle关于重建索引争论的总结oracle bulk collect批量取数据解决方法利用windows任务计划实现oracle的定期备份使用sqlplus命令行工具为oracle创建用户和oracle 11g服务器与客户端卸载、安装全过oracle数据库事务隔离级别介绍oracle数据库按时间进行分组统计数据的方
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved