Relational Database

NOTE
The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import data_rdb from '@ohos.data.rdb';

data_rdb.getRdbStore

getRdbStore(config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void

Obtains a relational database (RDB) store. This API uses an asynchronous callback to return the result. You can set parameters for the RDB store based on service requirements and call APIs to perform data operations.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
config StoreConfig Yes Configuration of the RDB store.
version number Yes RDB store version.
callback AsyncCallback<RdbStore> Yes Callback invoked to return the RDB store obtained.

Example

const STORE_CONFIG = { name: "RdbTest.db"}
data_rdb.getRdbStore(STORE_CONFIG, 1, function (err, rdbStore) {
    if (err) {
        console.info("Failed to get RdbStore, err: " + err)
        return
    }
    console.log("Got RdbStore successfully.")
})

data_rdb.getRdbStore

getRdbStore(config: StoreConfig, version: number): Promise<RdbStore>

Obtains an RDB store. This API uses a promise to return the result. You can set parameters for the RDB store based on service requirements and call APIs to perform data operations.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
config StoreConfig Yes Configuration of the RDB store.
version number Yes RDB store version.

Return value

Type Description
Promise<RdbStore> Promise used to return the RDB store obtained.

Example

const STORE_CONFIG = { name: "RdbTest.db" }
let promise = data_rdb.getRdbStore(STORE_CONFIG, 1);
promise.then(async (rdbStore) => {
    console.log("Got RdbStore successfully.")
}).catch((err) => {
    console.log("Failed to get RdbStore, err: " + err)
})

data_rdb.getRdbStore8+

getRdbStore(context: Context, config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void

Obtains a relational database (RDB) store. This API uses an asynchronous callback to return the result. You can set parameters for the RDB store based on service requirements and call APIs to perform data operations.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
context8+ Context Yes Context of the app or functionality.
For the definition of Context of API version 8, see Context.
For the definition of Context of API version 9, see Context.
config StoreConfig Yes Configuration of the RDB store.
version number Yes RDB store version.
callback AsyncCallback<RdbStore> Yes Callback invoked to return the RDB store obtained.

Example

const STORE_CONFIG = { name: "RdbTest.db"}
data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {
    if (err) {
        console.info("Failed to get RdbStore, err: " + err)
        return
    }
    console.log("Got RdbStore successfully.")
})

data_rdb.getRdbStore8+

getRdbStore(context: Context, config: StoreConfig, version: number): Promise<RdbStore>

Obtains an RDB store. This API uses a promise to return the result. You can set parameters for the RDB store based on service requirements and call APIs to perform data operations.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
context8+ Context Yes Context of the app or functionality.
For the definition of Context of API version 8, see Context.
For the definition of Context of API version 9, see Context.
config StoreConfig Yes Configuration of the RDB store.
version number Yes RDB store version.

Return value

Type Description
Promise<RdbStore> Promise used to return the RDB store obtained.

Example

const STORE_CONFIG = { name: "RdbTest.db" }
let promise = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
promise.then(async (rdbStore) => {
    console.log("Got RdbStore successfully.")
}).catch((err) => {
    console.log("Failed to get RdbStore, err: " + err)
})

data_rdb.deleteRdbStore

deleteRdbStore(name: string, callback: AsyncCallback<void>): void

Deletes an RDB store. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
name string Yes Name of the RDB store to delete.
callback AsyncCallback<void> Yes Callback invoked to return the result.

Example

data_rdb.deleteRdbStore("RdbTest.db", function (err, rdbStore) {
    if (err) {
        console.info("Failed to delete RdbStore, err: " + err)
        return
    }
    console.log("Deleted RdbStore successfully.")
})

data_rdb.deleteRdbStore

deleteRdbStore(name: string): Promise<void>

Deletes an RDB store. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
name string Yes Name of the RDB store to delete.

Return value

Type Description
Promise<void> Promise used to return the result.

Example

let promise = data_rdb.deleteRdbStore("RdbTest.db")
promise.then(()=>{
    console.log("Deleted RdbStore successfully.")
}).catch((err) => {
    console.info("Failed to delete RdbStore, err: " + err)
})

data_rdb.deleteRdbStore8+

deleteRdbStore(context: Context, name: string, callback: AsyncCallback<void>): void

Deletes an RDB store. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
context8+ Context Yes Context of the app or functionality.
For the definition of Context of API version 8, see Context.
For the definition of Context of API version 9, see Context.
name string Yes Name of the RDB store to delete.
callback AsyncCallback<void> Yes Callback invoked to return the result.

Example

data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {
    if (err) {
        console.info("Failed to delete RdbStore, err: " + err)
        return
    }
    console.log("Deleted RdbStore successfully.")
})

data_rdb.deleteRdbStore8+

deleteRdbStore(context: Context, name: string): Promise<void>

Deletes an RDB store. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
context8+ Context Yes Context of the app or functionality.
For the definition of Context of API version 8, see Context.
For the definition of Context of API version 9, see Context.
name string Yes Name of the RDB store to delete.

Return value

Type Description
Promise<void> Promise used to return the result.

Example

let promise = data_rdb.deleteRdbStore("RdbTest.db")
promise.then(()=>{
    console.log("Deleted RdbStore successfully.")
}).catch((err) => {
    console.info("Failed to delete RdbStore, err: " + err)
})

RdbPredicates

Defines predicates for an RDB store. This class determines whether the conditional expression for the RDB store is true or false.

constructor

constructor(name: string)

A constructor used to create an RdbPredicates object.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
name string Yes Database table name.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")

inDevices8+

inDevices(devices: Array<string>): RdbPredicates

Specifies a remote device on the network during distributed database synchronization.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
devices Array<string> Yes ID of the remote device to specify.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inDevices(['12345678abcde'])

inAllDevices8+

inAllDevices(): RdbPredicates

Connects to all remote devices on the network during distributed database synchronization.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inAllDevices()

equalTo

equalTo(field: string, value: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value equal to the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value ValueType Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")

notEqualTo

notEqualTo(field: string, value: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value not equal to the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value ValueType Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notEqualTo("NAME", "lisi")

beginWrap

beginWrap(): RdbPredicates

Adds a left parenthesis to the RdbPredicates.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Return value

Type Description
RdbPredicates RdbPredicates with a left parenthesis.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()

endWrap

endWrap(): RdbPredicates

Adds a right parenthesis to the RdbPredicates.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Return value

Type Description
RdbPredicates RdbPredicates with a right parenthesis.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()

or

or(): RdbPredicates

Adds the OR condition to the RdbPredicates.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Return value

Type Description
RdbPredicates RdbPredicates with the OR condition.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
    .or()
    .equalTo("NAME", "Rose")

and

and(): RdbPredicates

Adds the AND condition to the RdbPredicates.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Return value

Type Description
RdbPredicates RdbPredicates with the AND condition.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
    .and()
    .equalTo("SALARY", 200.5)

contains

contains(field: string, value: string): RdbPredicates

Sets the RdbPredicates to match a string containing the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value string Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.contains("NAME", "os")

beginsWith

beginsWith(field: string, value: string): RdbPredicates

Sets the RdbPredicates to match a string that starts with the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value string Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.beginsWith("NAME", "os")

endsWith

endsWith(field: string, value: string): RdbPredicates

Sets the RdbPredicates to match a string that ends with the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value string Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.endsWith("NAME", "se")

isNull

isNull(field: string): RdbPredicates

Sets the RdbPredicates to match the field whose value is null.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.
  • Example
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNull("NAME")

isNotNull

isNotNull(field: string): RdbPredicates

Sets the RdbPredicates to match the field whose value is not null.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNotNull("NAME")

like

like(field: string, value: string): RdbPredicates

Sets the RdbPredicates to match a string that is similar to the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value string Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.like("NAME", "%os%")

glob

glob(field: string, value: string): RdbPredicates

Sets the RdbPredicates to match the specified string.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value string Yes Value to match the RdbPredicates.

Wildcards are supported. ***** indicates zero, one, or multiple digits or characters. ? indicates a single digit or character.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.glob("NAME", "?h*g")

between

between(field: string, low: ValueType, high: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value within the specified range.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
low ValueType Yes Minimum value to match the RdbPredicates.
high ValueType Yes Maximum value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.between("AGE", 10, 50)

notBetween

notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value out of the specified range.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
low ValueType Yes Minimum value to match the RdbPredicates.
high ValueType Yes Maximum value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notBetween("AGE", 10, 50)

greaterThan

greaterThan(field: string, value: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value greater than the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value ValueType Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThan("AGE", 18)

lessThan

lessThan(field: string, value: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value less than the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value ValueType Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThan("AGE", 20)

greaterThanOrEqualTo

greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value greater than or equal to the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value ValueType Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThanOrEqualTo("AGE", 18)

lessThanOrEqualTo

lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Sets the RdbPredicates to match the field with data type ValueType and value less than or equal to the specified value.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value ValueType Yes Value to match the RdbPredicates.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThanOrEqualTo("AGE", 20)

orderByAsc

orderByAsc(field: string): RdbPredicates

Sets the RdbPredicates to match the column with values sorted in ascending order.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByAsc("NAME")

orderByDesc

orderByDesc(field: string): RdbPredicates

Sets the RdbPredicates to match the column with values sorted in descending order.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByDesc("AGE")

distinct

distinct(): RdbPredicates

Sets the RdbPredicates to filter out duplicate records.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Return value

Type Description
RdbPredicates RdbPredicates object that can filter out duplicate records.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").distinct("NAME")
let promise = rdbStore.query(predicates, ["NAME"])
promise.then((resultSet) => {
    console.log("resultSet column names:" + resultSet.columnNames)
    console.log("resultSet column count:" + resultSet.columnCount)
}).catch((err) => {
    console.log("query err.")
})

limitAs

limitAs(value: number): RdbPredicates

Sets the RdbPredicates to specify the maximum number of records.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
value number Yes Maximum number of records.

Return value

Type Description
RdbPredicates RdbPredicates object that specifies the maximum number of records.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").limitAs(3)

offsetAs

offsetAs(rowOffset: number): RdbPredicates

Sets the RdbPredicates to specify the start position of the returned result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
rowOffset number Yes Number of rows to offset from the beginning. The value is a positive integer.

Return value

Type Description
RdbPredicates RdbPredicates object that specifies the start position of the returned result.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").offsetAs(3)

groupBy

groupBy(fields: Array<string>): RdbPredicates

Sets the RdbPredicates to group rows that have the same value into summary rows.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
fields Array<string> Yes Names of columns to group.

Return value

Type Description
RdbPredicates RdbPredicates object that groups rows with the same value.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.groupBy(["AGE", "NAME"])

indexedBy

indexedBy(field: string): RdbPredicates

Sets the RdbPredicates object to specify the index column.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Name of the index column.

Return value

Type Description
RdbPredicates RdbPredicates object that specifies the index column.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.indexedBy("SALARY_INDEX")

in

in(field: string, value: Array<ValueType>): RdbPredicates

Sets the RdbPredicates to match the field with data type Array<ValueType> and value within the specified range.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value Array<ValueType> Yes Array of ValueTypes to match.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.in("AGE", [18, 20])

notIn

notIn(field: string, value: Array<ValueType>): RdbPredicates

Sets the RdbPredicates to match the field with data type Array<ValueType> and value out of the specified range.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
field string Yes Column name in the database table.
value Array<ValueType> Yes Array of ValueTypes to match.

Return value

Type Description
RdbPredicates RdbPredicates object that matches the specified field.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notIn("NAME", ["Lisa", "Rose"])

RdbStore

Provides methods to manage an RDB store.

insert

insert(name: string, values: ValuesBucket, callback: AsyncCallback<number>):void

Inserts a row of data into a table. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
name string Yes Name of the target table.
values ValuesBucket Yes Row of data to insert.
callback AsyncCallback<number> Yes Callback invoked to return the result. If the operation is successful, the row ID will be returned. Otherwise, -1 will be returned.

Example

const valueBucket = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
    if (err) {
        console.info("Failed to insert data, err: " + err)
        return
    }
    console.log("Insert first done: " + ret)
})

insert

insert(name: string, values: ValuesBucket):Promise<number>

Inserts a row of data into a table. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
name string Yes Name of the target table.
values ValuesBucket Yes Row of data to insert.

Return value

Type Description
Promise<number> Promise used to return the result. If the operation is successful, the row ID will be returned. Otherwise, -1 will be returned.

Example

const valueBucket = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let promise = rdbStore.insert("EMPLOYEE", valueBucket)
promise.then(async (ret) => {
    console.log("Insert first done: " + ret)
}).catch((err) => {
    console.log("Failed to insert data, err: " + err)
})

update

update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallback<number>):void

Updates data in the database based on the specified RdbPredicates object. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
values ValuesBucket Yes Data to update. The value specifies the row of data to be updated in the database. The key-value pair is associated with the column name in the target table.
rdbPredicates RdbPredicates Yes Row of data to insert.
callback AsyncCallback<number> Yes Callback used to return the number of rows updated.

Example

const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.update(valueBucket, predicates, function (err, ret) {
    if (err) {
        console.info("Failed to update data, err: " + err)
        return
    }
    console.log("Updated row count: " + ret)
})

update

update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise<number>

Updates data in the database based on the specified RdbPredicates object. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
values ValuesBucket Yes Data to update. The value specifies the row of data to be updated in the database. The key-value pair is associated with the column name in the target table.
rdbPredicates RdbPredicates Yes Row of data to insert.

Return value

Type Description
Promise<number> Promise used to return the number of rows updated.

Example

const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.update(valueBucket, predicates)
promise.then(async (ret) => {
    console.log("Updated row count: " + ret)
}).catch((err) => {
    console.info("Failed to update data, err: " + err)
})

delete

delete(rdbPredicates: RdbPredicates, callback: AsyncCallback<number>):void

Deletes data from the database based on the specified RdbPredicates object. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
rdbPredicates RdbPredicates Yes Conditions specified for deleting data.
callback AsyncCallback<number> Yes Callback invoked to return the number of rows updated.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.delete(predicates, function (err, rows) {
    if (err) {
        console.info("Failed to delete data, err: " + err)
        return
    }
    console.log("Delete rows: " + rows)
})

delete

delete(rdbPredicates: RdbPredicates):Promise<number>

Deletes data from the database based on the specified RdbPredicates object. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
rdbPredicates RdbPredicates Yes Conditions specified for deleting data.

Return value

Type Description
Promise<number> Promise used to return the number of rows updated.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.delete(predicates)
promise.then((rows) => {
    console.log("Delete rows: " + rows)
}).catch((err) => {
    console.info("Failed to delete data, err: " + err)
})

query

query(rdbPredicates: RdbPredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>):void

Queries data in the database based on specified conditions. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
rdbPredicates RdbPredicates Yes Query conditions specified by the RdbPredicates object.
columns Array<string> Yes Columns to query. If this parameter is not specified, the query applies to all columns.
callback AsyncCallback<ResultSet> Yes Callback invoked to return the result. If the operation is successful, a ResultSet object will be returned.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose")
rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
    console.log("resultSet column names:" + resultSet.columnNames)
    console.log("resultSet column count:" + resultSet.columnCount)
})

query

query(rdbPredicates: RdbPredicates, columns?: Array<string>):Promise<ResultSet>

Queries data in the database based on specified conditions. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
rdbPredicates RdbPredicates Yes Query conditions specified by the RdbPredicates object.
columns Array<string> No Columns to query. If this parameter is not specified, the query applies to all columns.

Return value

Type Description
Promise<ResultSet> Promise used to return the result. If the operation is successful, a ResultSet object will be returned.

Example

let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose")
let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) => {
    console.log("resultSet column names:" + resultSet.columnNames)
    console.log("resultSet column count:" + resultSet.columnCount)
}).catch((err) => {
    console.info("Query failed, err: " + err)
})

querySql8+

querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void

Queries data in the RDB store using the specified SQL statement. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
sql string Yes SQL statement to run.
bindArgs Array<ValueType> Yes Values of the parameters in the SQL statement.
callback AsyncCallback<ResultSet> Yes Callback invoked to return the result. If the operation is successful, a ResultSet object will be returned.

Example

rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
    console.log("resultSet column names:" + resultSet.columnNames)
    console.log("resultSet column count:" + resultSet.columnCount)
})

querySql8+

querySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet>

Queries data in the RDB store using the specified SQL statement. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
sql string Yes SQL statement to run.
bindArgs Array<ValueType> No Values of the parameters in the SQL statement.

Return value

Type Description
Promise<ResultSet> Promise used to return the result. If the operation is successful, a ResultSet object will be returned.

Example

let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
promise.then((resultSet) => {
    console.log("resultSet column names:" + resultSet.columnNames)
    console.log("resultSet column count:" + resultSet.columnCount)
}).catch((err) => {
    console.info("Query failed, err: " + err)
})

executeSql

executeSql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<void>):void

Runs the SQL statement that contains the specified parameters but does not return a value. This API uses a callback to return the execution result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
sql string Yes SQL statement to run.
bindArgs Array<ValueType> Yes Values of the parameters in the SQL statement.
callback AsyncCallback<void> Yes Callback invoked to return the result.

Example

const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {
    if (err) {
        console.info("executeSql failed, err: " + err)
        return
    }
    console.info('create table done.')
})

executeSql

executeSql(sql: string, bindArgs?: Array<ValueType>):Promise<void>

Runs the SQL statement that contains the specified parameters but does not return a value. This API uses a promise to return the execution result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
sql string Yes SQL statement to run.
bindArgs Array<ValueType> No Values of the parameters in the SQL statement.

Return value

Type Description
Promise<void> Promise used to return the result.

Example

const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
let promise = rdbStore.executeSql(SQL_CREATE_TABLE)
promise.then(() => {
    console.info('create table done.')
}).catch((err) => {
    console.info("ExecuteSql failed, err: " + err)
})

beginTransaction8+

beginTransaction():void

Starts the transaction before executing an SQL statement.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Example

rdbStore.beginTransaction()
const valueBucket = {
    "name": "lisi",
    "age": 18,
    "salary": 100.5,
    "blobType": new Uint8Array([1, 2, 3]),
}
rdbStore.insert("test", valueBucket, function (err, ret) {
    if (err) {
        console.info("Failed to insert data, err: " + err)
        return
    }
    console.log("Inserted data successfully: " + ret)
})
rdbStore.commit()

commit8+

commit():void

Commits the executed SQL statements.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Example

rdbStore.beginTransaction()
const valueBucket = {
    "name": "lisi",
    "age": 18,
    "salary": 100.5,
    "blobType": new Uint8Array([1, 2, 3]),
}

rdbStore.insert("test", valueBucket, function (err, ret) {
    if (err) {
        console.info("Failed to insert data, err: " + err)
        return
    }
    console.log("Inserted data successfully: " + ret)
})
rdbStore.commit()

rollBack8+

rollBack():void;

Rolls back the SQL statements that have been executed.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Example

try {
    rdbStore.beginTransaction()
    const valueBucket = {
        "id": 1,
        "name": "lisi",
        "age": 18,
        "salary": 100.5,
        "blobType": new Uint8Array([1, 2, 3]),
    }
    rdbStore.insert("test", valueBucket, function (err, ret) {
        if (err) {
            console.info("Failed to insert data, err: " + err)
            return
        }
        console.log("Inserted data successfully: " + ret)
    })
    rdbStore.commit()
} catch (e) {
    rdbStore.rollBack()
}

setDistributedTables8+

setDistributedTables(tables: Array<string>, callback: AsyncCallback<void>): void

Sets a list of distributed tables. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
tables Array<string> Yes Names of the distributed tables to set.
callback AsyncCallback<void> Yes Callback invoked to return the result.

Example

rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
    if (err) {
        console.info('setDistributedTables failed, err: ' + err)
        return
    }
    console.info('setDistributedTables successful.')
})

setDistributedTables8+

setDistributedTables(tables: Array<string>): Promise<void>

Sets a list of distributed tables. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
tables Array<string> Yes Names of the distributed tables to set.

Return value

Type Description
Promise<void> Promise used to return the result.

Example

let promise = rdbStore.setDistributedTables(["EMPLOYEE"])
promise.then(() => {
    console.info("setDistributedTables successful.")
}).catch((err) => {
    console.info("setDistributedTables failed, err: " + err)
})

obtainDistributedTableName8+

obtainDistributedTableName(device: string, table: string, callback: AsyncCallback<string>): void

Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the database of a remote device is queried. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
device string Yes Remote device.
table string Yes Local table name.
callback AsyncCallback<string> Yes Callback invoked to return the result. If the operation succeeds, the distributed table name of the remote device is returned.

Example

rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) {
    if (err) {
        console.info('obtainDistributedTableName failed, err: ' + err)
        return
    }
    console.info('obtainDistributedTableName successful, tableName=.' + tableName)
})

obtainDistributedTableName8+

obtainDistributedTableName(device: string, table: string): Promise<string>

Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the database of a remote device is queried. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
device string Yes Remote device.
table string Yes Local table name.

Return value

Type Description
Promise<string> Promise used to return the result. If the operation succeeds, the distributed table name of the remote device is returned.

Example

let promise = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE")
promise.then((tableName) => {
    console.info('obtainDistributedTableName successful, tableName=' + tableName)
}).catch((err) => {
    console.info('obtainDistributedTableName failed, err: ' + err)
})

sync8+

sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array<[string, number]>>): void

Synchronizes data between devices. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
mode SyncMode Yes Data synchronization mode. The value can be push or pull.
predicates RdbPredicates Yes RdbPredicates object that specifies the data and devices to synchronize.
callback AsyncCallback<Array<[string, number]>> Yes Callback invoked to send the synchronization result to the caller.
string indicates the device ID.
number indicates the synchronization status of each device. The value 0 indicates a successful synchronization. Other values indicate a synchronization failure.

Example

let predicates = new rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde'])
rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) {
    if (err) {
        console.log('sync failed, err: ' + err)
        return
    }
    console.log('sync done.')
    for (let i = 0; i < result.length; i++) {
        console.log('device=' + result[i][0] + ' status=' + result[i][1])
    }
})

sync8+

sync(mode: SyncMode, predicates: RdbPredicates): Promise<Array<[string, number]>>

Synchronizes data between devices. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
mode SyncMode Yes Data synchronization mode. The value can be push or pull.
predicates RdbPredicates Yes RdbPredicates object that specifies the data and devices to synchronize.

Return value

Type Description
Promise<Array<[string, number]>> Promise used to return the synchronization result to the caller.
string indicates the device ID.
number indicates the synchronization status of each device. The value 0 indicates a successful synchronization. Other values indicate a synchronization failure.

Example

let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde'])
let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates)
promise.then((result) =>{
    console.log('sync done.')
    for (let i = 0; i < result.length; i++) {
        console.log('device=' + result[i][0] + ' status=' + result[i][1])
    }
}).catch((err) => {
    console.log('sync failed')
})

on('dataChange')8+

on(event: 'dataChange', type: SubscribeType, observer: Callback<Array<string>>): void

Registers an observer for this RDB store. When the data in the RDB store changes, a callback is invoked to return the data changes.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
event string Yes The value is'dataChange', which indicates a data change event.
type SubscribeType Yes Type defined in SubscribeType.
observer Callback<Array<string>> Yes Observer that listens for the data changes in the RDB store.

Example

function storeObserver(devices) {
    for (let i = 0; i < devices.length; i++) {
        console.log('device=' + devices[i] + ' data changed')
    }
}
try {
    rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
    console.log('Failed to register observer')
}

off('dataChange')8+

off(event:'dataChange', type: SubscribeType, observer: Callback<Array<string>>): void

Deletes the specified observer of the RDB store. This API uses a callback to return the result.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Parameters

Name Type Mandatory Description
event string Yes The value is'dataChange', which indicates a data change event.
type SubscribeType Yes Type defined in SubscribeType.
observer Callback<Array<string>> Yes Data change observer registered.

Example

function storeObserver(devices) {
    for (let i = 0; i < devices.length; i++) {
        console.log('device=' + devices[i] + ' data changed')
    }
}
try {
    rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
    console.log('Failed to unregister observer')
}

StoreConfig

Manages the configuration of an RDB store.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Name Type Mandatory Description
name string Yes Database file name.

ValueType

Defines the data types allowed.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Name Description
number Number.
string String.
boolean Boolean.

ValuesBucket

Defines a bucket to store key-value pairs.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Name Type Mandatory Description
[key: string] ValueType| Uint8Array | null Yes Defines a bucket to store key-value pairs.

SyncMode8+

Defines the database synchronization mode.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Name Default Value Description
SYNC_MODE_PUSH 0 Data is pushed from a local device to a remote device.
SYNC_MODE_PULL 1 Data is pulled from a remote device to a local device.

SubscribeType8+

Defines the subscription type.

System capability: SystemCapability.DistributedDataManager.RelationalStore.Core

Name Default Value Description
SUBSCRIBE_TYPE_REMOTE 0 Subscribe to remote data changes.