The current repo belongs to Closed status, and some functions are restricted. For details, please refer to the description of repo status
24 Star 22 Fork 109

OpenHarmony / distributeddatamgr_appdatamgr

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
Clone or Download
Sync branch
Notice: Creating folder will generate an empty file .keep, because not support in Git



The relational database (RDB) manages data based on relational models. With the underlying SQLite database, the OpenHarmony RDB provides a complete mechanism for managing local databases.

The preferences database provides lightweight key-value operations for local applications to store a small amount of data. As the stored data is already loaded in the memory, the faster data access speed achieves a higher work efficiency. The preferences database is non-relational, and therefore it is not suitable for storing a large amount of data. Instead, the preferences database is usually used to operate data in key-value pairs.


With the SQLite database as the persistence engine, the OpenHarmony RDB supports all features of the SQLite database , including but not limited to transactions, indices, views, triggers, foreign keys, parameterized queries, and prepared SQL statements.

Figure 1 How RDB works

Preferences Database

  1. The preferences database provides operation classes for applications to operate the database.
  2. With the PreferencesHelper, an app can load the content of a specified file to the Preferences instance. Each file has only one Preferences instance. The system stores the instance in the memory through a static container until the app removes the instance from the memory or deletes the file.
  3. After obtaining the Preferences instance, the app can use the functions in Preferences to read data from or write data to the Preferences instance, and use flush() or flushSync() to save the modification to the file that stores the preference data.

Figure 2 How the preferences database works

Directory Structure

├── frameworks            # Framework code
│   └── js                # JS API implementation
│   │   └── napi          # napi implementation
│   └── native            # Internal API implementation
└── interfaces            # APIs
    └── inner_api         # Internal APIs
        └── native        # C/C++ APIs

Relational Database

Some basic concepts are as follows:

  • Relational database (RDB)

    A database created on the basis of relational models. The RDB stores data in rows and columns.

  • Result set

    A set of query results used to access the data. You can access the required data in a result set in flexible modes.

  • SQLite database

    A lightweight RDB in compliance with the atomicity, consistency, isolation, and durability (ACID) properties. It is an open-source database.


The RDB can use a maximum of four connection pools to manage read and write operations.

To ensure data accuracy, the RDB supports only one writ operation at a time.

Preferences Database

Some basic concepts are as follows:

  • Key-value database

    A database that stores data in key-value pairs. The key indicates keyword, and value indicates the corresponding value.

  • Non-relational database

    A database not in compliance with the atomicity, consistency, isolation, and durability (ACID) database management properties of relational data transactions. Instead, the data in a non-relational database is independent and scalable.

  • Preference data

    A type of data that is frequently accessed and used.


A key should be a string with a maximum of 80 characters and cannot be an empty string.

A value in the format of string can have a maximum of 8192 characters. A value can be an empty string.

To avoid a high memory cost, it is recommended that the preferences database store no more than ten thousand data entries.

Repositories Involved


本地数据管理组件 expand collapse
C++ and 3 more languages


No release





Load More
can not load any more


10d9f8b4 4838521 8bde8327 4838521