#ifndef REPOSITORY_H #define REPOSITORY_H #include #include template class Repository { public: /** * @brief create 创建数据 * @param ptr 数据 * @return 是否创建成功 */ static bool create(QSharedPointer ptr) { qx::QxSqlQuery query("ORDER BY id DESC LIMIT 1"); T entity; qx::dao::fetch_by_query(query, entity); ptr->id = entity.id + 1; QSqlError err = qx::dao::insert(ptr); return !err.isValid(); } /** * @brief update 更新数据 * @param ptr 数据 * @return 是否更新成功 */ static bool update(QSharedPointer ptr) { QSqlError err = qx::dao::update(ptr); return !err.isValid(); } /** * @brief deleteById 根据id删除 * @param id 数据id * @return 是否删除成功 */ static bool deleteById(long id) { QSharedPointer ptr; ptr.reset(new T()); ptr->id = id; QSqlError err = qx::dao::delete_by_id(ptr); return !err.isValid(); } /** * @brief findById 通过id查询 * @param id 主键id * @return 数据智能指针 */ static QSharedPointer findById(long id) { QSharedPointer ptr; ptr.reset(new T()); ptr->id = id; QSqlError err = qx::dao::fetch_by_id(ptr); if (err.isValid()) { ptr.reset(new T()); } return ptr; }; }; #endif // REPOSITORY_H