本地数据库操作(QSqlDatabase项目中的常用操作封装和使用)

数据库常用接口封装类:
先将头文件贴上
class DataBaseUtil
{
public:
    DataBaseUtil();
    virtual ~DataBaseUtil();

    /**
     * @brief loadDataBase 加载数据库
     * @param database 数据库操作对象
     * @param databaseName 数据库名称
     * @param connectName 数据库连接名称
     * @return 是否加载成功
     */
    bool loadDataBase(QSqlDatabase &database, const QString &databaseName, const QString &connectName);

    /**
     * @brief closeDataBase 关闭数据库
     */
    void closeDataBase();

    /**
     * @brief createTable 创建数据库表
     * @param sqlcreate 创建数据库表的sql语句
     * @return  是否创建成功
     */
    bool createTable(const QString &sqlcreate);

    /**
     * @brief insert 表格中插入数据
     * @param sqlinsert 插入信息的sql语句
     * @return 是否插入成功
     */
    bool insert(const QString &sqlinsert);

    /**
     * @brief check 检查某项内容是否存在数据库中
     * @param sqlcheck 数据查询的sql语句
     * @return 返回查询结果字符串
     */
    QString checkExist(const QString &sqlcheck);

    /**
     * @brief deleteInfo 删除信息
     * @param sqldelete 删除信息的sql语句
     * @return 是否删除成功
     */
    bool deleteInfo(const QString &sqldelete);

    bool updateInfo(const QString &sqlupdate);
    /**
     * @brief getPlaneParamFromSql 从数据库中获取机型信息
     * @param sqlQuery
     * @return
     */
   /* AXPlaneParam getPlaneParamFromSql(QSqlQuery sqlQuery);*/

    /**
    * @brief checkInfo 数据库查询
    * @param sqlcheck 查询信息的sql语句
    * @return  返回查询结果
    */
    QList<QStringList> checkInfo(const QString &sqlcheck);

private:
    QSqlDatabase        mDataBase;//用于存储同步数据的数据库
    QSqlQuery           mSqlQuery;//提供执行和操作的SQL语句的方法
    QString             mDatabaseName;//当前数据库的名称
    QString             mConnectName;//连接名称
};
#endif // DATABASEUTIL_H

应用实例如下:

附加一个数据库内容降序排序方法:

QString checksql = QString("select UserName, Score from %1 where Grade = \"%2\" and Lecture = \"%3\" order by Score desc").arg(PLANE_MANAGE_TABLE_NAME).arg(m_currentCourseWareInfos.name).arg(m_currentLectureData.lectureName);

list = m_DataBaseUtil.checkInfo(checksql);

猜你喜欢

转载自blog.csdn.net/xiaomucgwlmx/article/details/82180385
今日推荐