本文主要是介绍QSqlDatabase QSqlQuery 构建数据库操作基本框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、效果图
二、代码
#ifndef DATABASEACCESS_H
#define DATABASEACCESS_H#include <QObject>
#include <QMutex>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QMap>
#include <QVector>
#include <QSqlDriver>
#include <QDebug>
#include <QSqlRecord>
#include <QSqlError>
#include <QSqlResult>
#include <QSqlQueryModel>
#include <QDateTime>
//提供数据库、表基本操作框架
class DataBaseAccess
{
public:explicit DataBaseAccess();~DataBaseAccess();static DataBaseAccess* instance();//指定数据库,指定表 插入数据void insertData(const QString& db,const QString& table,const QVector<QStringList>& values);//指定数据库,指定表,指定表字段,提取指定条件数据void selectData(const QString& db,const QString& table,const QStringList& fields,const QString& filter);//指定数据库,指定表,指定表字段,依据指定条件,修改数据void updateData(const QString& db,const QString& table,const QStringList& fields,const QStringList& values, const QString& filter);//指定数据库,指定表,依据指定条件,删除记录void deleteData(const QString& db,const QString& table,const QString& filter);
public:void test();
private:void init();//统一维护数据库 数据表的创建void init_dbTableData();void init_dbTable();private:static QMutex m_mutex;static DataBaseAccess *m_pDBaccess;QMap<QString,QStringList> m_dbTableMap;//映射数据库连接和对应的表
};#endif // DATABASEACCESS_H
#include "databaseaccess.h"
QMutex DataBaseAccess::m_mutex;
DataBaseAccess *DataBaseAccess::m_pDBaccess;
DataBaseAccess::DataBaseAccess()
{init();test();
}DataBaseAccess::~DataBaseAccess()
{}DataBaseAccess *DataBaseAccess::instance()
{if(m_pDBaccess == nullptr){m_mutex.lock();if(m_pDBaccess == nullptr){m_pDBaccess = new DataBaseAccess;}m_mutex.unlock();}return m_pDBaccess;
}void DataBaseAccess::insertData(const QString &db, const QString &table, const QVector<QStringList> &values)
{QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE",db);database.setDatabaseName(db);if (!database.open()){qDebug
这篇关于QSqlDatabase QSqlQuery 构建数据库操作基本框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!