NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::repository< T, Connect > 模板类 参考

泛型 Repository 更多...

#include <repository.hpp>

Public 成员函数

 repository (Connect &conn) noexcept
 构造函数
Connect & connection () noexcept
 获取内部连接引用
bool create_table (string_view table_override="")
 创建数据库表
bool drop_table (string_view table_override="")
 删除数据库表
unique_ptr< T > find_by_id (const reflect::meta_any &id)
 按主键查找实体
vector< T > find_all ()
 查询全部实体
vector< T > find_where (const string &where_clause)
 按 WHERE 条件查询实体
vector< T > find_page (const size_t page_num, const size_t page_size, string_view order_by="")
 分页查询实体
bool insert (T &entity)
 插入实体
bool update (const T &entity)
 更新实体(按主键)
bool remove (const T &entity)
 删除实体(按主键)
size_t count ()
 获取实体总数
bool table_exists ()
 检查表是否存在

详细描述

template<typename T, typename Connect = idb_tb_connect>
class neforce::repository< T, Connect >

泛型 Repository

模板参数
T实体类型(需已通过反射注册)
Connect连接类型,默认为 idb_tb_connect

封装常见的数据访问操作,通过 sql_mapper 自动生成 SQL。

在文件 repository.hpp47 行定义.

构造及析构函数说明

◆ repository()

template<typename T, typename Connect = idb_tb_connect>
neforce::repository< T, Connect >::repository ( Connect & conn)
inlineexplicitnoexcept

构造函数

参数
conn数据库连接引用

在文件 repository.hpp143 行定义.

成员函数说明

◆ connection()

template<typename T, typename Connect = idb_tb_connect>
Connect & neforce::repository< T, Connect >::connection ( )
inlinenodiscardnoexcept

获取内部连接引用

返回
连接引用

在文件 repository.hpp150 行定义.

◆ count()

template<typename T, typename Connect = idb_tb_connect>
size_t neforce::repository< T, Connect >::count ( )
inline

获取实体总数

返回
行数,查询失败返回 0

在文件 repository.hpp325 行定义.

引用了 neforce::sql_builder::build(), neforce::sql_builder::from(), neforce::sql_builder::select_count() , 以及 neforce::sql_mapper< T >::table_name().

◆ create_table()

template<typename T, typename Connect = idb_tb_connect>
bool neforce::repository< T, Connect >::create_table ( string_view table_override = "")
inline

创建数据库表

参数
table_override可选表名覆盖
返回
执行成功返回 true

在文件 repository.hpp157 行定义.

引用了 neforce::sql_mapper< T >::create_table_sql().

◆ drop_table()

template<typename T, typename Connect = idb_tb_connect>
bool neforce::repository< T, Connect >::drop_table ( string_view table_override = "")
inline

删除数据库表

参数
table_override可选表名覆盖
返回
执行成功返回 true

在文件 repository.hpp167 行定义.

引用了 neforce::sql_mapper< T >::drop_table_sql().

◆ find_all()

template<typename T, typename Connect = idb_tb_connect>
vector< T > neforce::repository< T, Connect >::find_all ( )
inline

◆ find_by_id()

template<typename T, typename Connect = idb_tb_connect>
unique_ptr< T > neforce::repository< T, Connect >::find_by_id ( const reflect::meta_any & id)
inline

◆ find_page()

template<typename T, typename Connect = idb_tb_connect>
vector< T > neforce::repository< T, Connect >::find_page ( const size_t page_num,
const size_t page_size,
string_view order_by = "" )
inline

◆ find_where()

template<typename T, typename Connect = idb_tb_connect>
vector< T > neforce::repository< T, Connect >::find_where ( const string & where_clause)
inline

◆ insert()

template<typename T, typename Connect = idb_tb_connect>
bool neforce::repository< T, Connect >::insert ( T & entity)
inline

插入实体

参数
entity实体对象
返回
执行成功返回 true
注解
自增主键字段在 INSERT 时被跳过,值由数据库自动生成。 如需获取自增主键值,可在此方法返回后执行 SELECT LAST_INSERT_ID()。

在文件 repository.hpp296 行定义.

◆ remove()

template<typename T, typename Connect = idb_tb_connect>
bool neforce::repository< T, Connect >::remove ( const T & entity)
inline

删除实体(按主键)

参数
entity实体对象
返回
执行成功返回 true

在文件 repository.hpp316 行定义.

◆ table_exists()

template<typename T, typename Connect = idb_tb_connect>
bool neforce::repository< T, Connect >::table_exists ( )
inline

检查表是否存在

返回
存在返回 true

在文件 repository.hpp345 行定义.

引用了 neforce::sql_mapper< T >::table_name().

◆ update()

template<typename T, typename Connect = idb_tb_connect>
bool neforce::repository< T, Connect >::update ( const T & entity)
inline

更新实体(按主键)

参数
entity实体对象
返回
执行成功返回 true

在文件 repository.hpp306 行定义.


该类的文档由以下文件生成: