如何使用QT對Oracle數據庫進行連接?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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開始調試運行
關于如何使用QT對Oracle數據庫進行連接問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。