首页数据库QT连接Oracle数据库的环境和操作是什么

QT连接Oracle数据库的环境和操作是什么

时间2024-03-22 06:50:03发布访客分类数据库浏览1298
导读:相信很多人对“QT连接Oracle数据库的环境和操作是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 目的: 本文实现QT登录界面,输入账号和密码后,系统连接Oracle数据进行判断账号和...
相信很多人对“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数据库的环境和操作是什么已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: QT连接Oracle数据库的环境和操作是什么
本文地址: https://pptw.com/jishu/650163.html
php将数组转为索引数组方法有哪些? php数组清除最后一项的三种实现方法

游客 回复需填写必要信息