5.4 数据持久化方案
数据持久化是应用程序开发中的一个重要环节,用于在应用程序关闭后保存数据以供后续使用。在鸿蒙应用开发中,可以选择多种数据持久化方案,包括文件存储、Preferences、数据库(如SQLite)等。
5.4.1 文件存储
文件存储是最简单的数据持久化方式,适用于保存小型文件或配置数据。
示例:文件写入和读取
- 写入文件:
import fileio from '@ohos.fileio';
const filePath = '/data/accounts/account_0/appdata/example.txt';
fileio.writeFile(filePath, 'Hello HarmonyOS', (err) => {
if (err) {
console.error('文件写入失败', err);
} else {
console.info('文件写入成功');
}
});
- 读取文件:
fileio.readFile(filePath, (err, data) => {
if (err) {
console.error('文件读取失败', err);
} else {
console.info('文件内容:', data.toString());
}
});
5.4.2 Preferences
Preferences 是一种键值对存储方式,适合保存简单的配置信息。
示例:存储和读取数据
- 存储数据:
import preferences from '@ohos.data.preferences';
preferences.getPreferences('/data/accounts/account_0/appdata/config', (err, prefs) => {
if (!err) {
prefs.put('username', 'HarmonyUser');
prefs.flush();
console.info('配置保存成功');
}
});
- 读取数据:
preferences.getPreferences('/data/accounts/account_0/appdata/config', (err, prefs) => {
if (!err) {
const username = prefs.get('username', '默认用户');
console.info('读取的用户名:', username);
}
});
5.4.3 数据库存储(SQLite)
对于复杂数据结构或需要执行查询的场景,可以使用 SQLite 数据库。
示例:数据库操作
- 创建数据库并插入数据:
import rdb from '@ohos.data.rdb';
const storeConfig = {
name: 'example.db',
};
rdb.getRdbStore(storeConfig, 1, (err, store) => {
if (!err) {
const createTableSQL = 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)';
store.executeSql(createTableSQL, []);
store.executeSql('INSERT INTO users (name) VALUES (?)', ['HarmonyUser']);
console.info('数据插入成功');
}
});
- 查询数据:
rdb.getRdbStore(storeConfig, 1, (err, store) => {
if (!err) {
store.querySql('SELECT * FROM users', [], (err, resultSet) => {
if (!err) {
while (resultSet.goToNextRow()) {
console.info('用户 ID:', resultSet.getInt(0));
console.info('用户名:', resultSet.getString(1));
}
}
});
}
});
5.4.4 小结
鸿蒙应用开发提供了灵活的持久化方案,开发者可以根据需求选择合适的方式:
- 文件存储适用于简单文件的读写操作。
- Preferences 提供方便的键值对存储。
- SQLite 数据库适合复杂数据的管理与查询。
