Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
b796c3b0
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
b796c3b0
编写于
6月 30, 2022
作者:
O
openharmony_ci
提交者:
Gitee
6月 30, 2022
浏览文件
操作
浏览文件
下载
差异文件
!6130 【RDB】database-relational-guidelines.md文档错误修改&格式修改
Merge pull request !6130 from Cap_W/master
上级
c41193f1
93588b0d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
78 addition
and
56 deletion
+78
-56
zh-cn/application-dev/database/database-relational-guidelines.md
...pplication-dev/database/database-relational-guidelines.md
+78
-56
未找到文件。
zh-cn/application-dev/database/database-relational-guidelines.md
浏览文件 @
b796c3b0
...
...
@@ -17,10 +17,10 @@
| 接口名 | 描述 |
| -------- | -------- |
|getRdbStore(con
fig:
StoreConfig,
version:
number,
callback:
AsyncCallback
<
RdbStore
>
):
void | 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回
。
<br/>
-
config:与此RDB存储相关的数据库配置。
<br/>
-
version:数据库版本。
<br/>
-
callback:指定callback回调函数。返回一个RdbStore。 |
|getRdbStore(con
fig:
StoreConfig,
version:
number):
Promise
<
RdbStore
>
| 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回
。
<br/>
-
config:与此RDB存储相关的数据库配置。
<br/>
-
version:数据库版本。 |
|deleteRdbStore(
name:
string,
callback:
AsyncCallback
<
void
>
):
void | 删除数据库,结果以callback形式返回
。
<br/>
-
name:数据库名称。
<br/>
-
callback:指定callback回调函数。 |
| deleteRdbStore(
name:
string):
Promise
<
void
>
| 使用指定的数据库文件配置删除数据库,结果以Promise形式返回
。
<br/>
-
name:数据库名称。 |
|getRdbStore(con
text: Context, config: StoreConfig, version: number, callback: AsyncCallback
<
RdbStore
>
): void| 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回。
<br/>
-
context:应用程序或功能的上下文
。
<br/>
-
config:与此RDB存储相关的数据库配置。
<br/>
-
version:数据库版本。
<br/>
-
callback:指定callback回调函数。返回一个RdbStore。 |
|getRdbStore(con
text: Context, config: StoreConfig, version: number): Promise
<
RdbStore
>
| 获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回。
<br/>
-
context:应用程序或功能的上下文
。
<br/>
-
config:与此RDB存储相关的数据库配置。
<br/>
-
version:数据库版本。 |
|deleteRdbStore(
context: Context, name: string, callback: AsyncCallback
<
void
>
): void | 删除数据库,结果以callback形式返回。
<br/>
-
context:应用程序或功能的上下文
。
<br/>
-
name:数据库名称。
<br/>
-
callback:指定callback回调函数。 |
| deleteRdbStore(
context: Context, name: string): Promise
<
void
>
| 使用指定的数据库文件配置删除数据库,结果以Promise形式返回。
<br/>
-
context:应用程序或功能的上下文
。
<br/>
-
name:数据库名称。 |
### 数据库的增删改查
...
...
@@ -213,69 +213,81 @@
## 开发步骤
1.
创建数据库。
1.
配置数据库相关信息,包括数据库的名称、存储模式、是否为只读模式等。
2.
初始化数据库表结构和相关数据。
3.
创建数据库。
(1) 配置数据库相关信息,包括数据库的名称、存储模式、是否为只读模式等。
(2) 初始化数据库表结构和相关数据。
(3) 创建数据库。
示例代码如下:
```
js
import
data_rdb
from
'
@ohos.data.rdb
'
const
CREATE_TABLE_TEST
=
"
CREATE TABLE IF NOT EXISTS test (
"
+
"
id INTEGER PRIMARY KEY AUTOINCREMENT,
"
+
"
name TEXT NOT NULL,
"
+
"
age INTEGER,
"
+
"
salary REAL,
"
+
"
blobType BLOB)
"
;
const
STORE_CONFIG
=
{
name
:
"
rdbstore.db
"
,}
data_rdb
.
getRdbStore
(
STORE_CONFIG
,
1
,
function
(
err
,
rdbStore
)
{
rdbStore
.
executeSql
(
CREATE_TABLE_TEST
)
console
.
info
(
'
create table done.
'
)
})
```
```js
import data_rdb from '@ohos.data.rdb'
const CREATE_TABLE_TEST = "CREATE TABLE IF NOT EXISTS test (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)";
const STORE_CONFIG = {name: "rdbstore.db",}
data_rdb.getRdbStore(this.context,
STORE_CONFIG, 1, function (err, rdbStore) {
rdbStore.executeSql(CREATE_TABLE_TEST)
console.info('create table done.')
})
```
2.
插入数据。
1.
构造要插入的数据,以ValuesBucket形式存储。
2.
调用关系型数据库提供的插入接口。
(1) 构造要插入的数据,以ValuesBucket形式存储。
(2) 调用关系型数据库提供的插入接口。
示例代码如下:
```
js
var
u8
=
new
Uint8Array
([
1
,
2
,
3
])
const
valueBucket
=
{
"
name
"
:
"
Tom
"
,
"
age
"
:
18
,
"
salary
"
:
100.5
,
"
blobType
"
:
u8
,}
let
insertPromise
=
rdbStore
.
insert
(
"
test
"
,
valueBucket
)
```
```js
var u8 = new Uint8Array([1, 2, 3])
const valueBucket = {"name": "Tom", "age": 18, "salary": 100.5, "blobType": u8,}
let insertPromise = rdbStore.insert("test", valueBucket)
```
3.
查询数据。
1.
构造用于查询的谓词对象,设置查询条件。
2.
调用查询接口查询数据。
3.
调用结果集接口,返回查询结果。
(1) 构造用于查询的谓词对象,设置查询条件。
(2) 调用查询接口查询数据。
(3) 调用结果集接口,返回查询结果。
示例代码如下:
```
js
let
predicates
=
new
data_rdb
.
RdbPredicates
(
"
test
"
);
predicates
.
equalTo
(
"
name
"
,
"
Tom
"
)
let
promisequery
=
rdbStore
.
query
(
predicates
)
promisequery
.
then
((
resultSet
)
=>
{
resultSet
.
goToFirstRow
()
const
id
=
resultSet
.
getLong
(
resultSet
.
getColumnIndex
(
"
id
"
))
const
name
=
resultSet
.
getString
(
resultSet
.
getColumnIndex
(
"
name
"
))
const
age
=
resultSet
.
getLong
(
resultSet
.
getColumnIndex
(
"
age
"
))
const
salary
=
resultSet
.
getDouble
(
resultSet
.
getColumnIndex
(
"
salary
"
))
const
blobType
=
resultSet
.
getBlob
(
resultSet
.
getColumnIndex
(
"
blobType
"
))
resultSet
.
close
()
})
```js
let predicates = new data_rdb.RdbPredicates("test");
predicates.equalTo("name", "Tom")
let promisequery = rdbStore.query(predicates)
promisequery.then((resultSet) => {
resultSet.goToFirstRow()
const id = resultSet.getLong(resultSet.getColumnIndex("id"))
const name = resultSet.getString(resultSet.getColumnIndex("name"))
const age = resultSet.getLong(resultSet.getColumnIndex("age"))
const salary = resultSet.getDouble(resultSet.getColumnIndex("salary"))
const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType"))
resultSet.close()
})
```
4. 设置分布式同步表。
1.
权限配置文件中增加以下配置:
(1) 权限配置文件中增加以下配置。
```
js
"requestPermissions":
{
"name": "ohos.permission.DISTRIBUTED_DATASYNC"
}
```
2.
获取应用权限。
3.
数据库调用接口设置分布式同步列表。
4.
判断是否设置成功。
(2) 获取应用权限。
(3) 数据库调用接口设置分布式同步列表。
(4) 判断是否设置成功。
示例代码如下:
...
...
@@ -293,16 +305,19 @@
```
5. 分布式数据同步。
1.
构造用于同步分布式表的谓词对象,指定组网内的远程设备。
2.
调用同步数据的接口 。
3.
判断数据同步是否成功。
(1) 构造用于同步分布式表的谓词对象,指定组网内的远程设备。
(2) 调用同步数据的接口。
(3) 判断数据同步是否成功。
示例代码如下:
```
js
let predicate = new data_rdb.RdbPredicates('test')
predicate.inDevices(['12345678abcde'])
let promise = rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicate)
let promise = rdbStore.sync(
data_
rdb.SyncMode.SYNC_MODE_PUSH, predicate)
promise.then((result) => {
console.log('sync done.')
for (let i = 0; i < result.length; i++) {
...
...
@@ -314,8 +329,10 @@
```
6. 分布式数据订阅。
1.
调用分布式数据订阅接口,注册数据库的观察者。
2.
当分布式数据库中的数据发生更改时,将调用回调。
(1) 调用分布式数据订阅接口,注册数据库的观察者。
(2) 当分布式数据库中的数据发生更改时,将调用回调。
示例代码如下:
...
...
@@ -326,15 +343,17 @@
}
}
try {
rdbStore.on('dataChange', rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
rdbStore.on('dataChange',
data_
rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
console.log('register observer failed')
}
```
7. 跨设备查询。
1.
根据本地表名获取指定远程设备的分布式表名。
2.
调用结果集接口,返回查询结果。
(1) 根据本地表名获取指定远程设备的分布式表名。
(2) 调用结果集接口,返回查询结果。
示例代码如下:
...
...
@@ -342,9 +361,12 @@
let tableName = rdbStore.obtainDistributedTableName(deviceId, "test");
let resultSet = rdbStore.querySql("SELECT
*
FROM " + tableName)
```
8. 数据库的备份和恢复。
1.
调用数据库的备份接口,备份当前数据库文件。
2.
调用数据库的恢复接口,从数据库的备份文件恢复数据库文件。
(1) 调用数据库的备份接口,备份当前数据库文件。
(2) 调用数据库的恢复接口,从数据库的备份文件恢复数据库文件。
示例代码如下:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录