openharmony 鸿蒙 js-apis-data-ability

2025-06-12 浏览 (1)

@ohos.data.dataAbility (DataAbility Predicates)

The DataAbility module provides APIs to create predicates for querying data from relational database (RDB) stores.

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 { dataAbility } from '@kit.ArkData';

dataAbility.createRdbPredicates

createRdbPredicates(name: string, dataAbilityPredicates: DataAbilityPredicates): rdb.RdbPredicates

Creates an RdbPredicates object with a table name and DataAbilityPredicates object.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
namestringYesName of a database table.
dataAbilityPredicatesDataAbilityPredicatesYesDataAbilityPredicates object.

Return value

TypeDescription
rdb.RdbPredicatesRdbPredicates object created.

Example

let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()
dataAbilityPredicates.equalTo("NAME", "Rose")
// EMPLOYEE is a table created in an RDB store.
let predicates = dataAbility.createRdbPredicates("EMPLOYEE", dataAbilityPredicates)

DataAbilityPredicates

Provides APIs for creating diverse query conditions.

Initialization

let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()

equalTo

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are equal to the given value.

This API is similar to the SQL equal to (=) operator.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueValueTypeYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.equalTo("NAME", "lisi")

notEqualTo

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are not equal to the given value.

This API is similar to the SQL not equal (!=) operator.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueValueTypeYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.notEqualTo("NAME", "lisi")

beginWrap

beginWrap(): DataAbilityPredicates

Creates a DataAbilityPredicates object to add a left parenthesis. This API is similar to "(" in an SQL statement and must be used with endWrap.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object with a left parenthesis.

Example

dataAbilityPredicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()

endWrap

endWrap(): DataAbilityPredicates

Creates a DataAbilityPredicates object to add a right parenthesis. This API is similar to ")" in an SQL statement and must be used with beginWrap.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object with a right parenthesis.

Example

dataAbilityPredicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()

or

or(): DataAbilityPredicates

Creates a DataAbilityPredicates object to add the OR condition.

This API is similar to the SQL or operator.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object with the OR condition.

Example

dataAbilityPredicates.equalTo("NAME", "Lisa")
    .or()
    .equalTo("NAME", "Rose")

and

and(): DataAbilityPredicates

Creates a DataAbilityPredicates object to add the AND condition.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object with the AND condition.

Example

dataAbilityPredicates.equalTo("NAME", "Lisa")
    .and()
    .equalTo("SALARY", 200.5)

contains

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

Creates a DataAbilityPredicates object to search for the records in the specified column that contain the given value.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valuestringYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.contains("NAME", "os")

beginsWith

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

Creates a DataAbilityPredicates object to search for the records in the specified column that begin with the given value.

This API is similar to the percent sign (%) in SQL statements.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valuestringYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.beginsWith("NAME", "os")

endsWith

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

Creates a DataAbilityPredicates object to search for the records in the specified column that end with the given value.

This API is similar to the percent sign (%) in SQL statements.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valuestringYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.endsWith("NAME", "se")

isNull

isNull(field: string): DataAbilityPredicates

Creates a DataAbilityPredicates object to search for the records in the specified column that are null.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.isNull("NAME")

isNotNull

isNotNull(field: string): DataAbilityPredicates

Creates a DataAbilityPredicates object to search for the records in the specified column that are not null.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.isNotNull("NAME")

like

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are similar to the given value.

This API is similar to the SQL like statement.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valuestringYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.like("NAME", "%os%")

glob

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

Creates a DataAbilityPredicates object to search for the records in the specified column that match the given string. Different from like, the input parameters of this API are case-sensitive.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valuestringYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.glob("NAME", "?h*g")

// Only the records whose value is "Lisa" in the "name" column are matched.
dataAbilityPredicates.glob("NAME", "Lisa")

// Only the records whose value is "lisa" in the "name" column are matched.
dataAbilityPredicates.glob("NAME", "lisa")

between

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are within the given range.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
lowValueTypeYesMinimum value of the range to set.
highValueTypeYesMaximum value of the range to set.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.between("AGE", 10, 50)

notBetween

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are out of the given range.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
lowValueTypeYesMinimum value of the range to set.
highValueTypeYesMaximum value of the range to set.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.notBetween("AGE", 10, 50)

greaterThan

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are greater than the given value.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueValueTypeYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.greaterThan("AGE", 18)

lessThan

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are less than the given value.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueValueTypeYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.lessThan("AGE", 20)

greaterThanOrEqualTo

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are greater than or equal to the given value.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueValueTypeYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.greaterThanOrEqualTo("AGE", 18)

lessThanOrEqualTo

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are less than or equal to the given value.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueValueTypeYesValue to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.lessThanOrEqualTo("AGE", 20)

orderByAsc

orderByAsc(field: string): DataAbilityPredicates

Creates a DataAbilityPredicates object to sort the records in the specified column in ascending order. When there are multiple orderByAscs, the first orderByAsc used has the highest priority.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

// Sort data by name first; for the records with the same name, sort them by age; for the records with the same name and age, sort them by salary in ascending order.
dataAbilityPredicates.orderByAsc("NAME").orderByAsc("AGE").orderByAsc("SALARY")

orderByDesc

orderByDesc(field: string): DataAbilityPredicates

Creates a DataAbilityPredicates object to sort the records in the specified column in descending order. When there are multiple orderByDescs, the first orderByDesc used has the highest priority.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

// Sort the data by age first. For the data records with the same age, sort them by salary.
dataAbilityPredicates.orderByDesc("AGE").orderByDesc("SALARY")

distinct

distinct(): DataAbilityPredicates

Creates a DataAbilityPredicates object to filter out duplicate records.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.equalTo("NAME", "Rose").distinct()

limitAs

limitAs(value: number): DataAbilityPredicates

Creates a DataAbilityPredicates object to limit the number of records.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
valuenumberYesMaximum number of records. The value should be a positive integer. If a value less than or equal to 0 is specified, the number of records is not limited.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.equalTo("NAME", "Rose").limitAs(3)

offsetAs

offsetAs(rowOffset: number): DataAbilityPredicates

Creates a DataAbilityPredicates object to set the start position of the query result. This API must be used together with limitAs. Otherwise, no result will be returned. To query all rows after the specified offset, pass in -1 in limitAs.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
rowOffsetnumberYesStart position. The value should be a positive integer. If a value less than or equal to 0 is specified, the query result is returned from the first element.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

// Display the three data records following the first three records.
dataAbilityPredicates.equalTo("NAME", "Rose").offsetAs(3).limitAs(3)

groupBy

groupBy(fields: Array<string>): DataAbilityPredicates

Creates a DataAbilityPredicates object to group the query results based on the specified columns.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldsArray<string>YesNames of columns to group.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.groupBy(["AGE", "NAME"])

indexedBy

indexedBy(field: string): DataAbilityPredicates

Creates a DataAbilityPredicates object to specify the index column. Before calling this API, you need to create an index column.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesName of the index.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

import { dataAbility, relationalStore } from '@kit.ArkData';

let context = getContext(this);

const STORE_CONFIG : relationalStore.StoreConfig = {
    name: 'RdbTest.db', // Database file name.
    securityLevel: relationalStore.SecurityLevel.S3,
};
// Table structure: EMPLOYEE (NAME, AGE, SALARY, CODES)
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)'; // SQL statement for creating a data table.
relationalStore.getRdbStore(context, STORE_CONFIG, async (err, store) => {
  if (err) {
    console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);
    return;
  }
  console.info('Succeeded in getting RdbStore.');


  await store.executeSql(SQL_CREATE_TABLE); // Create a data table.


  // Create an index.
  const SQL_CREATE_INDEX = 'CREATE INDEX SALARY_INDEX ON EMPLOYEE(SALARY)'
  await store.executeSql(SQL_CREATE_INDEX);
  // ...

  let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()
  dataAbilityPredicates.indexedBy("SALARY_INDEX")

  //  ...
})

in

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are in the given range.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueArray<ValueType>YesArray of ValueTypes to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.in("AGE", [18, 20])

notIn

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

Creates a DataAbilityPredicates object to search for the records in the specified column that are out of the given range.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

Parameters

NameTypeMandatoryDescription
fieldstringYesColumn name in the table.
valueArray<ValueType>YesArray of ValueTypes to match.

Return value

TypeDescription
DataAbilityPredicatesDataAbilityPredicates object created.

Example

dataAbilityPredicates.notIn("NAME", ["Lisa", "Rose"])

ValueType

type ValueType = number|string|boolean

Defines the value types.

System capability: SystemCapability.DistributedDataManager.DataShare.Core

TypeDescription
numberThe value is a number.
stringThe value is a string.
booleanThe value is of Boolean type.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkData (ArkData Management)

harmony 鸿蒙Data

harmony 鸿蒙OH_Cursor

harmony 鸿蒙OH_Predicates

harmony 鸿蒙OH_Rdb_Config

harmony 鸿蒙OH_Rdb_Store

harmony 鸿蒙OH_VBucket

harmony 鸿蒙OH_VObject

harmony 鸿蒙Preferences

harmony 鸿蒙_r_d_b

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/D3Il6a