3 Star 11 Fork 11

xin-yue / XQt6

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
XQDatabaseObject.hpp 11.88 KB
一键复制 编辑 原始数据 按行查看 历史
xin-yue 提交于 2024-01-11 20:34 . XQDatabaseObject注释修改
#ifndef XQDATABASEOBJECT_H
#define XQDATABASEOBJECT_H
#include<QString>
#include<QSqlDatabase>
#include<QSqlQuery>
#include<QStack>
#include<QSqlDriver>
#include<QScopedPointer>
#include<QSharedPointer>
#include<QSqlError>
class XQDatabaseData;
class XQLog;
#define XQDatabaseInfo XQLog("XQDatabaseObject")
class XQDatabaseObject :public QObject
{
Q_OBJECT
public:
XQDatabaseObject(QObject* parent = nullptr);
XQDatabaseObject(QSqlDatabase* database,QObject* parent = nullptr);
virtual ~XQDatabaseObject();
public:
/*
* @brief 拷贝数据库.
* @param connectionName:连接名称
* @retval 拷贝后的数据库
*/
virtual XQDatabaseObject* cloneDatabase(const QString& connectionName = QString());
/*
* @brief 拷贝数据库.
* @param connectionName:连接名称
* @retval 拷贝后的数据库-智能指针QScopedPointer
*/
QScopedPointer<XQDatabaseObject> cloneDatabase_ScopedPointer(const QString& connectionName = QString());
/*
* @brief 拷贝数据库.
* @param connectionName:连接名称
* @retval 拷贝后的数据库-智能指针QSharedPointer(共享型)
*/
QSharedPointer<XQDatabaseObject> cloneDatabase_SharedPointer(const QString& connectionName = QString());
/*
* @brief 获取数据库打开(连接)状态成功或者失败
* @retval (打开)连接数据库返回true
*/
bool isOpen()const;
/*
* @brief 获取QSqlQuery
* @retval QSqlQuery
*/
QSqlQuery& SqlQuery();
/*
* @brief 获取QSqlDatabase
* @retval QSqlDatabase
*/
QSqlDatabase database()const;
/*
* @brief 获取错误信息
* @retval QSqlError
*/
QSqlError sqlError()const;
public:
/*
* @brief 执行sql命令
* @param query:sql语句可以绑定参数。例子:INSERT INTO user (id, username, nickname) VALUES (?,?,?);
* @param values:绑定的参数列表
* @retval 成功返回true
*/
bool Query(const QString& query, const QVariantList& values = QVariantList());
/*
* @brief 创建表
* @param database:数据库数据
* @param tableName:要创建的表名
* @retval 成功返回true
*/
bool createTable(XQDatabaseData* database, const QString& tableName);
/*
* @brief 删除表
* @param tableName:要删除的表名
* @retval 成功返回true
*/
bool removeTable(const QString& tableName);
public:
/*
* @brief 获取32位uuid
* @param variate:sql临时变量保存生成的值,下一条语句中使用
* @retval 返回服务器生成的uuid
*/
QString uuid(const QString& variate = QString());
/*
* @brief 获取服务器当前时间
* @param variate:sql临时变量保存生成的值,下一条语句中使用
* @retval 返回服务器的当前时间
*/
QDateTime ctime(const QString& variate = QString());
public:
/*
* @brief 判断语句执行后是否有返回数据
* @retval 非空返回ture
*/
bool result();
/*
* @brief 获取返回的第一行某一列(字段)数据
* @param ret:保存数据的变量
* @param nSel:指定的列号
* @retval 非空返回ture
*/
bool result(QVariant& ret, int nSel = 0);
/*
* @brief 获取返回的第一行数据
* @param ret:保存数据的变量
* @retval 非空返回ture
*/
bool result(QVariantList& ret);
/*
* @brief 获取返回的某一列(字段)数据保存到栈
* @param ret:保存数据的栈
* @param nSel:指定的列号
* @retval 非空返回ture
*/
bool result(QStack<QVariant>& ret, int nSel = 0);
/*
* @brief 获取返回的所有数据转QString
* @retval QString的二位数组
*/
QList<QStringList> result_all_toString();
/*
* @brief 获取返回的所有数据
* @retval QVariant的二位数组
*/
QList<QVariantList> result_all();
/*
* @brief 获取指定一列全部数据转QString
* @param nSel:指定的列号
* @retval QString数组
*/
QStringList result_oneColumn_toString(int nSel = 0);
/*
* @brief 获取指定一列全部数据
* @param nSel:指定的列号
* @retval QVariant数组
*/
QVariantList result_oneColumn(int nSel = 0);
/*
* @brief 获取第一行全部数据转QString
* @retval QString数组
*/
QStringList result_oneRow_toString();
/*
* @brief 获取第一行全部数据
* @retval QVariant数组
*/
QVariantList result_oneRow();
/*
* @brief 获取第一行第一列数据转QString
* @retval QString
*/
QString result_one_toString();
/*
* @brief 获取第一行第一列数据
* @retval QVariant
*/
QVariant result_one();
public:
/*
* @brief 查询指定表名的表是否存在
* @param tableName:表名
* @retval 表存在时返回true
*/
bool tabelExists(const QString& tableName);
/*
* @brief 查询表内的行数
* @param tableName:表名
* @param Where:条件语句
* @param WhereBindValues:使用到的绑定参数
* @retval 满足条件的行数
*/
qint64 SELECT_COUNT(const QString& tableName, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief SELECT查询
* @param tableName:表名
* @param fields:字段列表
* @param rightSql:From右边使用到的其他sql语句
* @param rightSqlBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool SELECT(const QString& tableName, const QStringList& fields, const QString& rightSql = QString(), const QVariantList& rightSqlBindValues = QVariantList());
/*
* @brief SELECT查询
* @param tableName:表名
* @param fields:字段列表
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool SELECT_Where(const QString& tableName, const QStringList& fields, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief SELECT查询
* @param tableName:表名
* @param fields:字段列表
* @param receive:数据库数据,执行成功将会把查询到的数据写入其中
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool SELECT_Where(const QString& tableName, const QStringList& fields, XQDatabaseData* receive, const QString& Where, const QVariantList& WhereBindValues);
/*
* @brief 查询表的所有字段
* @param tableName:表名
* @retval 表的字段列表
*/
QStringList fieldList(const QString& tableName);
/*
* @brief 查询指定字段的所有数据
* @param tableName:表名
* @param field:查询字段
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
QVariantList findData(const QString& tableName, const QString& field, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief 查询指定字段的所有数据
* @param tableName:表名
* @param field:查询字段
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
QList<QVariantMap> findData_toVariantMap(const QString& tableName, const QString& field, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief 查询指定字段的所有数据转QString
* @param tableName:表名
* @param field:查询字段
* @retval 语句执行成功返回true
*/
QStringList findData_toString(const QString& tableName, const QString& field);
/*
* @brief 查询指定字段合集的所有数据
* @param tableName:表名
* @param fields:查询字段列表
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
QList<QVariantList> findDatas(const QString& tableName, const QStringList& fields, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief 查询指定字段合集的所有数据
* @param tableName:表名
* @param fields:查询字段列表
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
QList<QVariantMap> findDatas_toVariantMap(const QString& tableName, const QStringList& fields, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief 查询指定字段合集的所有数据转QString
* @param tableName:表名
* @param fields:查询字段列表
* @retval 语句执行成功返回true
*/
QList<QStringList> findDatas_toString(const QString& tableName, const QStringList& fields);
/*
* @brief 查询表所有数据
* @param tableName:表名
* @retval 语句执行成功返回true
*/
QList<QVariantList> findDataAll(const QString& tableName);
/*
* @brief 查询表所有数据转QString
* @param tableName:表名
* @retval 语句执行成功返回true
*/
QList<QStringList> findDataAll_toString(const QString& tableName);
public:
/*
* @brief 插入数据
* @param tableName:表名
* @param fields:插入字段列表
* @param insertDatas:插入的数据列表
* @retval 语句执行成功返回true
*/
bool INSERT(const QString& tableName, const QStringList& fields, const QVariantList& insertDatas);
/*
* @brief 插入数据
* @param tableName:表名
* @param data:插入的数据 QMap<QString, QVariant>(字段,数据)
* @retval 语句执行成功返回true
*/
bool INSERT(const QString& tableName, const QVariantMap& data);
/*
* @brief 插入数据
* @param tableName:表名
* @param fields:插入字段列表
* @param data:插入的数据
* @retval 语句执行成功返回true
*/
bool INSERT(const QString& tableName, const QStringList& fields, XQDatabaseData* data);
/*
* @brief 批量插入数据
* @param tableName:表名
* @param fields:插入字段列表
* @param insertDatas:插入的数据列表
* @retval 语句执行成功返回true
*/
bool INSERTS(const QString& tableName, const QStringList& fields, const QList<QVariantList>& insertDatas);
/*
* @brief 批量插入数据
* @param tableName:表名
* @param fields:插入字段列表
* @param insertDatas:插入的数据列表
* @retval 语句执行成功返回true
*/
bool INSERTS(const QString& tableName, const QStringList& fields, const QList<XQDatabaseData*>& insertDatas);
public:
/*
* @brief 更新数据
* @param tableName:表名
* @param fields:更新的字段列表
* @param updateDatas:更新的数据列表
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool UPDATE(const QString& tableName, const QStringList& fields, const QVariantList& updateDatas, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief 更新数据
* @param tableName:表名
* @param updateDatas:更新的数据 QMap<QString, QVariant>(字段,数据)
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool UPDATE(const QString& tableName, const QVariantMap& updateDatas, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
/*
* @brief 更新数据
* @param tableName:表名
* @param fields:更新的字段列表
* @param updateDatas:更新的数据
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool UPDATE(const QString& tableName, const QStringList& fields, XQDatabaseData* updateDatas, const QString& Where = QString(), const QVariantList& WhereBindValues = QVariantList());
public:
/*
* @brief 删除数据
* @param tableName:表名
* @param Where:条件sql语句
* @param WhereBindValues:使用到的绑定参数
* @retval 语句执行成功返回true
*/
bool DELETE(const QString& tableName, const QString& Where, QVariantList&& WhereBindValues);
signals:
/*
* @brief 错误发生信号
* @param error:发生的错误
* @retval
*/
void errorOccurred(const QSqlError& error);
/*
* @brief 数据库连接建立时信号
* @retval
*/
void connected();
protected:
virtual void init();
protected:
static XQLog* m_log;//Database全局日志
QString m_SqlName;
QSqlQuery m_sqlQuery;
};
#endif
1
https://gitee.com/xin___yue/XQt6.git
git@gitee.com:xin___yue/XQt6.git
xin___yue
XQt6
XQt6
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891