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. |