使用QT中访问PostgreSql数据库分别列出h头文件和cpp源文件
.h头文件:
#ifndef DBMANAGER_H
#define DBMANAGER_H
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include <QString>
#include <QDebug>
class DbManager
{
public:
DbManager();
bool openDB();
void closeDB();
void createTable();
bool insertIntoTable(const QString& name, const QString& age);
bool deleteFromTable(const QString& name);
bool updateTable(const QString& name, const QString& age);
void printAllData();
private:
QSqlDatabase m_db;
};
#endif // DBMANAGER_H
.cpp源文件:
#include "dbmanager.h"
DbManager::DbManager()
{
}
bool DbManager::openDB()
{
m_db = QSqlDatabase::addDatabase("QPSQL");
m_db.setHostName("localhost");
m_db.setDatabaseName("mydatabase");
m_db.setUserName("myusername");
m_db.setPassword("mypassword");
if (!m_db.open()) {
qDebug() << "Error: connection with database failed.";
return false;
}
else {
qDebug() << "Database connected successfully.";
return true;
}
}
void DbManager::closeDB()
{
m_db.close();
qDebug() << "Database connection closed.";
}
void DbManager::createTable()
{
QSqlQuery query;
query.exec("CREATE TABLE IF NOT EXISTS mytable (name TEXT, age TEXT)");
}
bool DbManager::insertIntoTable(const QString& name, const QString& age)
{
QSqlQuery query;
query.prepare("INSERT INTO mytable (name, age) VALUES (:name, :age)");
query.bindValue(":name", name);
query.bindValue(":age", age);
if(query.exec()) {
qDebug() << "Data inserted successfully.";
return true;
}
else {
qDebug() << "Error: data not inserted.";
return false;
}
}
bool DbManager::deleteFromTable(const QString& name)
{
QSqlQuery query;
query.prepare("DELETE FROM mytable WHERE name=:name");
query.bindValue(":name", name);
if(query.exec()) {
qDebug() << "Data deleted successfully.";
return true;
}
else {
qDebug() << "Error: data not deleted.";
return false;
}
}
bool DbManager::updateTable(const QString& name, const QString& age)
{
QSqlQuery query;
query.prepare("UPDATE mytable SET age=:age WHERE name=:name");
query.bindValue(":name", name);
query.bindValue(":age", age);
if(query.exec()) {
qDebug() << "Data updated successfully.";
return true;
}
else {
qDebug() << "Error: data not updated.";
return false;
}
}
void DbManager::printAllData()
{
QSqlQuery query("SELECT * FROM mytable");
int nameCol = query.record().indexOf("name");
int ageCol = query.record().indexOf("age");
while (query.next()) {
QString name = query.value(nameCol).toString();
QString age = query.value(ageCol).toString();
qDebug() << name << age;
}
}
``
原文地址: https://www.cveoy.top/t/topic/eDYu 著作权归作者所有。请勿转载和采集!