GGiteeupdate
3499a0d3创建于 2025年4月15日历史提交

relational_store.h

概述

提供管理关系数据库(RDB)方法的接口,未标注支持向量数据库的接口仅支持关系型数据库。

引用文件: <database/rdb/relational_store.h>

库: libnative_rdb_ndk.z.so

起始版本: 10

相关模块:RDB

汇总

结构体

名称 描述
OH_Rdb_Config 管理关系数据库配置。
OH_Rdb_Store 表示数据库类型。
Rdb_DistributedConfig 记录表的分布式配置信息。
Rdb_KeyInfo 描述发生变化的行的主键或者行号。
Rdb_KeyInfo::Rdb_KeyData 存放变化的具体数据。
Rdb_ChangeInfo 记录端云同步过程详情。
Rdb_SubscribeCallback 表示回调函数。
Rdb_DataObserver 表示数据观察者。
Rdb_Statistic 描述数据库表的端云同步过程的统计信息。
Rdb_TableDetails 描述数据库表执行端云同步任务上传和下载的统计信息。
Rdb_ProgressDetails 描述数据库整体执行端云同步任务上传和下载的统计信息。
Rdb_ProgressObserver 端云同步进度观察者。

宏定义

名称 描述
DISTRIBUTED_CONFIG_VERSION   1 描述Rdb_DistributedConfig的版本。
DISTRIBUTED_CHANGE_INFO_VERSION   1 描述Rdb_ChangeInfo的版本。
DISTRIBUTED_PROGRESS_DETAIL_VERSION   1 描述Rdb_ProgressDetails的版本。

类型定义

名称 描述
typedef enum Rdb_Tokenizer Rdb_Tokenizer 描述数据库的分词器类型。
OH_Rdb_SecurityLevel 数据库的安全级别枚举。
Rdb_SecurityArea 描述数据库的安全区域等级。
typedef struct OH_Rdb_ConfigV2 OH_Rdb_ConfigV2 管理关系数据库配置,与OH_Rdb_Config的区别是该结构体成员变量不对外暴露,使用一系列方法配置该结构体的属性,支持向量数据库。
typedef enum Rdb_DBType Rdb_DBType 描述数据库的内核类型。
Rdb_DistributedType 描述表的分布式类型的枚举。
Rdb_DistributedConfig 记录表的分布式配置信息。
Rdb_ChangeType 描述数据变更类型。
Rdb_KeyInfo 描述发生变化的行的主键或者行号。
Rdb_ChangeInfo 记录端云同步过程详情。
Rdb_SubscribeType 描述订阅类型。
Rdb_BriefObserver 端云数据更改事件的回调函数。
Rdb_DetailsObserver 端云数据更改事件的细节的回调函数。
Rdb_SubscribeCallback 表示回调函数。
Rdb_DataObserver 表示数据观察者。
Rdb_SyncMode 表示数据库的同步模式。
Rdb_Statistic 描述数据库表的端云同步过程的统计信息。
Rdb_TableDetails 描述数据库表执行端云同步任务上传和下载的统计信息。
Rdb_Progress 描述端云同步过程。
Rdb_ProgressCode 表示端云同步过程的状态。
Rdb_ProgressDetails 描述数据库整体执行端云同步任务上传和下载的统计信息。
Rdb_ProgressCallback 端云同步进度的回调函数。
Rdb_SyncCallback 数据库端云同步的回调函数。
Rdb_ProgressObserver 端云同步进度观察者。

枚举

名称 描述
Rdb_Tokenizer { RDB_NONE_TOKENIZER = 1, RDB_ICU_TOKENIZER = 2, RDB_CUSTOM_TOKENIZER = 3 } 描述数据库的分词器类型。
OH_Rdb_SecurityLevel { S1 = 1, S2, S3, S4} 数据库的安全级别枚举。
Rdb_SecurityArea { RDB_SECURITY_AREA_EL1 = 1, RDB_SECURITY_AREA_EL2, RDB_SECURITY_AREA_EL3, RDB_SECURITY_AREA_EL4, RDB_SECURITY_AREA_EL5 } 描述数据库的安全区域等级。
Rdb_DBType { RDB_SQLITE = 1, RDB_CAYLEY = 2, DBTYPE_BUTT = 64 } 描述数据库的内核类型。
Rdb_DistributedType { RDB_DISTRIBUTED_CLOUD } 描述表的分布式类型的枚举。
Rdb_ChangeType { RDB_DATA_CHANGE, RDB_ASSET_CHANGE } 描述数据变更类型。
Rdb_SubscribeType { RDB_SUBSCRIBE_TYPE_CLOUD, RDB_SUBSCRIBE_TYPE_CLOUD_DETAILS, RDB_SUBSCRIBE_TYPE_LOCAL_DETAILS } 描述订阅类型。
Rdb_SyncMode { RDB_SYNC_MODE_TIME_FIRST, RDB_SYNC_MODE_NATIVE_FIRST, RDB_SYNC_MODE_CLOUD_FIRST } 表示数据库的同步模式。
Rdb_Progress { RDB_SYNC_BEGIN, RDB_SYNC_IN_PROGRESS, RDB_SYNC_FINISH } 描述端云同步过程。
Rdb_ProgressCode {
RDB_SUCCESS, RDB_UNKNOWN_ERROR, RDB_NETWORK_ERROR, RDB_CLOUD_DISABLED,
RDB_LOCKED_BY_OTHERS, RDB_RECORD_LIMIT_EXCEEDED, RDB_NO_SPACE_FOR_ASSET
}
表示端云同步过程的状态。

函数

名称 描述
int OH_Rdb_SetPersistent (OH_Rdb_ConfigV2 *config, bool isPersistent) 指定数据库是否需要持久化。
int OH_Rdb_BatchInsert (OH_Rdb_Store *store, const char *table, const OH_Data_VBuckets *rows, Rdb_ConflictResolution resolution, int64_t *changes) 将一批数据插入到目标表中。
int OH_Rdb_CreateTransaction (OH_Rdb_Store *store, const OH_RDB_TransOptions *options, OH_Rdb_Transaction **trans) 创建一个事务对象。
int OH_Rdb_ExecuteV2 (OH_Rdb_Store *store, const char *sql, const OH_Data_Values *args, OH_Data_Value **result) 执行有返回值的SQL语句,支持向量数据库。
OH_Cursor * OH_Rdb_ExecuteQueryV2 (OH_Rdb_Store *store, const char *sql, const OH_Data_Values *args) 根据指定SQL语句查询数据库中的数据,支持向量数据库。
int OH_Rdb_IsTokenizerSupported (Rdb_Tokenizer tokenizer, bool *isSupported) 判断当前平台是否支持传入的分词器。
int OH_Rdb_SetTokenizer (OH_Rdb_ConfigV2 *config, Rdb_Tokenizer tokenizer) 给指定的数据库文件配置设置分词器类型。
OH_Rdb_ConfigV2 * OH_Rdb_CreateConfig () 创建一个OH_Rdb_ConfigV2实例,并返回指向该实例的指针。
int OH_Rdb_DestroyConfig (OH_Rdb_ConfigV2 *config) 销毁由OH_Rdb_CreateConfig创建的OH_Rdb_ConfigV2对象。
int OH_Rdb_SetDatabaseDir (OH_Rdb_ConfigV2 *config, const char *databaseDir) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置数据库文件路径。
int OH_Rdb_SetStoreName (OH_Rdb_ConfigV2 *config, const char *storeName) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置数据库名称。
int OH_Rdb_SetBundleName (OH_Rdb_ConfigV2 *config, const char *bundleName) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置应用包名。
int OH_Rdb_SetModuleName (OH_Rdb_ConfigV2 *config, const char *moduleName) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置应用模块名。
int OH_Rdb_SetEncrypted (OH_Rdb_ConfigV2 *config, bool isEncrypted) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置数据库是否加密。
int OH_Rdb_SetSecurityLevel (OH_Rdb_ConfigV2 *config, int securityLevel) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置数据库安全级别OH_Rdb_SecurityLevel
int OH_Rdb_SetArea (OH_Rdb_ConfigV2 *config, int area) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置数据库安全区域等级Rdb_SecurityArea
int OH_Rdb_SetDbType (OH_Rdb_ConfigV2 *config, int dbType) 给指定的数据库文件配置OH_Rdb_ConfigV2,设置数据库类型Rdb_DBType
const int * OH_Rdb_GetSupportedDbType (int *typeCount) 获得支持的数据库类型Rdb_DBType
OH_Rdb_Store * OH_Rdb_CreateOrOpen (const OH_Rdb_ConfigV2 *config, int *errCode) 使用指定的数据库文件配置OH_Rdb_ConfigV2,获得一个对应的OH_Rdb_Store实例,用来操作关系型数据库。
int OH_Rdb_ExecuteByTrxId (OH_Rdb_Store *store, int64_t trxId, const char *sql) 使用指定的事务ID执行无返回值的SQL语句,支持向量数据库。
int OH_Rdb_BeginTransWithTrxId (OH_Rdb_Store *store, int64_t *trxId) 在开始执行SQL语句之前,开始事务,并获得该事务的ID,支持向量数据库。
int OH_Rdb_RollBackByTrxId (OH_Rdb_Store *store, int64_t trxId) 使用指定的事务ID,回滚已经执行的SQL语句,支持向量数据库。
int OH_Rdb_CommitByTrxId (OH_Rdb_Store *store, int64_t trxId) 使用指定的事务ID,提交已经执行的SQL语句,支持向量数据库。
OH_Rdb_CreateValueObject () 创建OH_VObject实例。
OH_Rdb_CreateValuesBucket () 创建OH_VBucket实例。
OH_Rdb_CreatePredicates (const char *table) 创建OH_Predicates实例。
OH_Rdb_GetOrOpen (const OH_Rdb_Config *config, int *errCode) 获得一个相关的OH_Rdb_Store实例,操作关系型数据库。
OH_Rdb_CloseStore (OH_Rdb_Store *store) 销毁OH_Rdb_Store对象,并回收该对象占用的内存。
OH_Rdb_DeleteStore (const OH_Rdb_Config *config) 使用指定的数据库文件配置删除数据库。
int OH_Rdb_DeleteStoreV2 (const OH_Rdb_ConfigV2 *config) 使用指定的数据库文件配置OH_Rdb_ConfigV2删除数据库。当使用向量数据库时,在调用接口前,应当确保向量数据库已经被正确关闭。
OH_Rdb_Insert (OH_Rdb_Store *store, const char *table, OH_VBucket *valuesBucket) 向目标表中插入一行数据。
OH_Rdb_Update (OH_Rdb_Store *store, OH_VBucket *valuesBucket, OH_Predicates *predicates) 根据指定的条件更新数据库中的数据。
OH_Rdb_Delete (OH_Rdb_Store *store, OH_Predicates *predicates) 根据指定的条件删除数据库中的数据。
OH_Rdb_Query (OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length) 根据指定条件查询数据库中的数据。
OH_Rdb_Execute (OH_Rdb_Store *store, const char *sql) 执行无返回值的SQL语句。
OH_Rdb_ExecuteQuery (OH_Rdb_Store *store, const char *sql) 根据指定SQL语句查询数据库中的数据,支持向量数据库。
OH_Rdb_BeginTransaction (OH_Rdb_Store *store) 在开始执行SQL语句之前,开始事务。
OH_Rdb_RollBack (OH_Rdb_Store *store) 回滚已经执行的SQL语句。
OH_Rdb_Commit (OH_Rdb_Store *store) 提交已执行的SQL语句。
OH_Rdb_Backup (OH_Rdb_Store *store, const char *databasePath) 以指定路径备份数据库,支持向量数据库。
OH_Rdb_Restore (OH_Rdb_Store *store, const char *databasePath) 从指定的数据库备份文件恢复数据库,支持向量数据库。
OH_Rdb_GetVersion (OH_Rdb_Store *store, int *version) 获取数据库版本。
OH_Rdb_SetVersion (OH_Rdb_Store *store, int version) 设置数据库版本。
OH_Rdb_SetDistributedTables (OH_Rdb_Store *store, const char *tables[], uint32_t count, Rdb_DistributedType type, const Rdb_DistributedConfig *config) 设置分布式数据库表。
OH_Rdb_FindModifyTime (OH_Rdb_Store *store, const char *tableName, const char *columnName, OH_VObject *values) 获取数据库表中数据的最后修改时间。
OH_Rdb_Subscribe (OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer) 为数据库注册观察者。当分布式数据库中的数据发生更改时,将调用回调。
OH_Rdb_Unsubscribe (OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer) 从数据库中删除指定类型的指定观察者。
OH_Rdb_GetTableDetails (Rdb_ProgressDetails *progress, int32_t version) 从端云同步任务的统计信息中获取数据库表的统计信息。
OH_Rdb_CloudSync (OH_Rdb_Store *store, Rdb_SyncMode mode, const char *tables[], uint32_t count, const Rdb_ProgressObserver *observer) 进行端云同步。
OH_Rdb_SubscribeAutoSyncProgress (OH_Rdb_Store *store, const Rdb_ProgressObserver *observer) 订阅RDB存储的自动同步进度。当收到自动同步进度的通知时,将调用回调。
OH_Rdb_UnsubscribeAutoSyncProgress (OH_Rdb_Store *store, const Rdb_ProgressObserver *observer) 取消订阅RDB存储的自动同步进程。
int OH_Rdb_LockRow (OH_Rdb_Store *store, OH_Predicates *predicates) 根据指定的条件锁定数据库中的数据,锁定数据不执行端云同步。
int OH_Rdb_UnlockRow (OH_Rdb_Store *store, OH_Predicates *predicates) 根据指定的条件锁解锁数据库中的数据。
OH_Cursor * OH_Rdb_QueryLockedRow (OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length) 根据指定条件查询数据库中锁定的数据。