本地数据库操作(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);