关系型数据库

About 76 min

关系型数据库

说明: 从 API Version 7 开始支持。

导入模块

import dataRdb from '@ohos.data.rdb'
1

权限

dataRdb.getRdbStore

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

获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    config

    StoreConfig

    与此RDB存储相关的数据库配置。

    version

    number

    数据库版本。

    callback

    AsyncCallback<RdbStore>

    指定callback回调函数。返回一个RdbStore。

  • 示例:

    import dataRdb from '@ohos.data.rdb'
    const STORE_CONFIG = { name: "RdbTest.db" }
    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)"
    dataRdb.getRdbStore(STORE_CONFIG, 1, function (err, rdbStore) {
        rdbStore.executeSql(SQL_CREATE_TABLE)
        console.info(TAG + 'create table done.')
    })
    
    1
    2
    3
    4
    5
    6
    7

dataRdb.getRdbStore

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

获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    config

    StoreConfig

    与此RDB存储相关的数据库配置。

    version

    number

    数据库版本。

  • 返回值:

    类型

    说明

    Promise<RdbStore>

    指定Promise回调函数。返回一个RdbStore。

  • 示例:

    import dataRdb from '@ohos.data.rdb'
    const STORE_CONFIG = { name: "RdbTest.db" }
    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 = dataRdb.getRdbStore(STORE_CONFIG, 1);
    promise.then(async (rdbStore) => {
        await rdbStore.executeSql(SQL_CREATE_TABLE, null)
    }).catch((err) => {
        expect(null).assertFail();
    })
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

dataRdb.deleteRdbStore

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

删除数据库,结果以callback形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    name

    string

    数据库名称。

    callback

    AsyncCallback<void>

    指定callback回调函数。如果数据库已删除,则为true;否则返回false。

  • 示例:

    import dataRdb from '@ohos.data.rdb'
    dataRdb.deleteRdbStore("RdbTest.db", function (err, rdbStore) {
        console.info(TAG + 'delete store done.')})
    
    1
    2
    3

dataRdb.deleteRdbStore

deleteRdbStore(name: string): Promise<void>

使用指定的数据库文件配置删除数据库,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    name

    string

    数据库名称。

  • 返回值:

    类型

    说明

    Promise<void>

    指定Promise回调函数。如果数据库已删除,则为true;否则返回false。

  • 示例:

    import dataRdb from '@ohos.data.rdb'
    let promise = dataRdb.deleteRdbStore("RdbTest.db")
    promise.then(()=>{
        console.info(TAG + 'delete store done.')
    })
    
    1
    2
    3
    4
    5

RdbPredicates

表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。

constructor

constructor(name: string)

构造函数。

  • 参数:

    参数名

    类型

    必填

    说明

    name

    string

    数据库表名。

  • 示例:

    import dataRdb from '@ohos.data.rdb'
    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    
    1
    2

equalTo

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

配置谓词以匹配数据字段为ValueType且值等于指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    ValueType

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "lisi")
    
    1
    2

notEqualTo

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

配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    ValueType

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.notEqualTo("NAME", "lisi")
    
    1
    2

beginWrap

beginWrap(): RdbPredicates

向谓词添加左括号。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回带有左括号的Rdb谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "lisi")
        .beginWrap()
        .equalTo("AGE", 18)
        .or()
        .equalTo("SALARY", 200.5)
        .endWrap()
    
    1
    2
    3
    4
    5
    6
    7

endWrap

endWrap(): RdbPredicates

向谓词添加右括号。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回带有右括号的Rdb谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "lisi")
        .beginWrap()
        .equalTo("AGE", 18)
        .or()
        .equalTo("SALARY", 200.5)
        .endWrap()
    
    1
    2
    3
    4
    5
    6
    7

or

or(): RdbPredicates

将或条件添加到谓词中。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回带有或条件的Rdb谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Lisa")
        .or()
        .equalTo("NAME", "Rose")
    
    1
    2
    3
    4

and

and(): RdbPredicates

向谓词添加和条件。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回带有和条件的Rdb谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Lisa")
        .and()
        .equalTo("SALARY", 200.5)
    
    1
    2
    3
    4

contains

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

配置谓词以匹配数据字段为String且value包含指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    string

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.contains("NAME", "os")
    
    1
    2

beginsWith

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

配置谓词以匹配数据字段为String且值以指定字符串开头的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    string

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.beginsWith("NAME", "os")
    
    1
    2

endsWith

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

配置谓词以匹配数据字段为String且值以指定字符串结尾的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    string

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.endsWith("NAME", "se")
    
    1
    2

isNull

isNull(field: string): RdbPredicates

配置谓词以匹配值为null的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.isNull("NAME")
    
    1
    2

isNotNull

isNotNull(field: string): RdbPredicates

配置谓词以匹配值不为null的指定字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.isNotNull("NAME")
    
    1
    2

like

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

配置谓词以匹配数据字段为String且值类似于指定字符串的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    string

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.like("NAME", "%os%")
    
    1
    2

glob

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

配置RdbPredicates匹配数据字段为String的指定字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    string

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回指定的Rdb谓词。

  • 示例:

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

between

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

将谓词配置为匹配数据字段为ValueType且value在给定范围内的指定字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    low

    ValueType

    指示与谓词匹配的最小值。

    high

    ValueType

    指示要与谓词匹配的最大值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.between("AGE", 10, 50)
    
    1
    2

notBetween

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

配置RdbPredicates以匹配数据字段为ValueType且value超出给定范围的指定字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    low

    ValueType

    指示与谓词匹配的最小值。

    high

    ValueType

    指示要与谓词匹配的最大值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.notBetween("AGE", 10, 50)
    
    1
    2

greaterThan

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

配置谓词以匹配数据字段为ValueType且值大于指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    ValueType

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.greaterThan("AGE", 18)
    
    1
    2

lessThan

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

配置谓词以匹配数据字段为valueType且value小于指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    ValueType

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.lessThan("AGE", 20)
    
    1
    2

greaterThanOrEqualTo

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

配置谓词以匹配数据字段为ValueType且value大于或等于指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    ValueType

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.greaterThanOrEqualTo("AGE", 18)
    
    1
    2

lessThanOrEqualTo

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

配置谓词以匹配数据字段为ValueType且value小于或等于指定值的字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    ValueType

    指示要与谓词匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.lessThanOrEqualTo("AGE", 20)
    
    1
    2

orderByAsc

orderByAsc(field: string): RdbPredicates

配置谓词以匹配其值按升序排序的列。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.orderByAsc("NAME")
    
    1
    2

orderByDesc

orderByDesc(field: string): RdbPredicates

配置谓词以匹配其值按降序排序的列。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.orderByDesc("AGE")
    
    1
    2

distinct

distinct(): RdbPredicates

配置谓词以过滤重复记录并仅保留其中一个。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回可用于过滤重复记录的谓词。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Rose").distinct("NAME")
    let resultSet = await rdbStore.query(predicates, ["NAME"])
    
    1
    2
    3

limitAs

limitAs(value: number): RdbPredicates

设置最大数据记录数的谓词。

  • 参数:

    参数名

    类型

    必填

    说明

    value

    number

    最大数据记录数。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回可用于设置最大数据记录数的谓词。

  • 示例:

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

offsetAs

offsetAs(rowOffset: number): RdbPredicates

配置RdbPredicates以指定返回结果的起始位置。

  • 参数:

    参数名

    类型

    必填

    说明

    rowOffset

    number

    返回结果的起始位置,取值为正整数。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回具有指定返回结果起始位置的谓词。

  • 示例:

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

groupBy

groupBy(fields: Array<string>): RdbPredicates

配置RdbPredicates按指定列分组查询结果。

  • 参数:

    参数名

    类型

    必填

    说明

    fields

    Array<string>

    指定分组依赖的列名。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回分组查询列的谓词。

  • 示例:

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

indexedBy

indexedBy(indexName: string): RdbPredicates

配置RdbPredicates以指定索引列。

  • 参数:

    参数名

    类型

    必填

    说明

    indexName

    string

    索引列的名称。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回具有指定索引列的RdbPredicates。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.indexedBy("SALARY_INDEX")
    
    1
    2

in

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

配置RdbPredicates以匹配数据字段为ValueType数组且值在给定范围内的指定字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    Array<ValueType>

    以ValueType型数组形式指定的要匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

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

notIn

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

将RdbPredicates配置为匹配数据字段为ValueType且值超出给定范围的指定字段。

  • 参数:

    参数名

    类型

    必填

    说明

    field

    string

    数据库表中的列名。

    value

    Array<ValueType>

    以ValueType数组形式指定的要匹配的值。

  • 返回值:

    类型

    说明

    RdbPredicates

    返回与指定字段匹配的谓词。

  • 示例:

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

RdbStore

提供管理关系数据库(RDB)方法的接口。

insert

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

向目标表中插入一行数据,结果以callback形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    name

    string

    指定的目标表名。

    values

    ValuesBucket

    表示要插入到表中的数据行。

    callback

    AsyncCallback<number>

    指定callback回调函数。如果操作成功,返回行ID;否则返回-1。

  • 示例:

    const valueBucket = {
        "NAME": "Lisa",
        "AGE": 18,
        "SALARY": 100.5,
        "CODES": new Uint8Array([1, 2, 3, 4, 5]),
    }
    rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
        expect(1).assertEqual(ret)
        console.log(TAG + "insert first done: " + ret)})
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

insert

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

向目标表中插入一行数据,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    name

    string

    指定的目标表名。

    values

    ValuesBucket

    表示要插入到表中的数据行。

  • 返回值:

    类型

    说明

    Promise<number>

    指定Promise回调函数。如果操作成功,返回行ID;否则返回-1。

  • 示例:

    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) => {
        await console.log(TAG + "insert first done: " + ret)
    }).catch((err) => {})
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

update

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

根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    values

    ValuesBucket

    value指示数据库中要更新的数据行。键值对与数据库表的列名相关联

    rdbPredicates

    RdbPredicates

    表示要插入到表中的数据行。

    callback

    AsyncCallback<number>

    指定的callback回调方法。返回受影响的行数。

  • 示例:

    const valueBucket = {
        "NAME": "Rose",
        "AGE": 22,
        "SALARY": 200.5,
        "CODES": new Uint8Array([1, 2, 3, 4, 5]),
    }
    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Lisa")
    rdbStore.update(valueBucket, predicates, function (err, ret) {
        console.log(TAG + "updated row count: " + changedRows)})
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

update

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

根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    values

    ValuesBucket

    value指示数据库中要更新的数据行。键值对与数据库表的列名相关联

    rdbPredicates

    RdbPredicates

    表示要插入到表中的数据行。

  • 返回值:

    类型

    说明

    Promise<number>

    指定的Promise回调方法。返回受影响的行数。

  • 示例:

    const valueBucket = {
        "NAME": "Rose",
        "AGE": 22,
        "SALARY": 200.5,
        "CODES": new Uint8Array([1, 2, 3, 4, 5]),
    }
    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Lisa")
    let promise = rdbStore.update(valueBucket, predicates)
    promise.then(async (ret) => {
        await console.log(TAG + "updated row count: " + changedRows)
    }).catch((err) => {})
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

delete

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

根据rdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    rdbPredicates

    RdbPredicates

    RdbPredicates的实例对象指定的删除条件。

    callback

    AsyncCallback<number>

    指定callback回调函数。返回受影响的行数。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Lisa")
    rdbStore.delete(predicates, function (err, rows) {
        console.log(TAG + "delete rows: " + rows)})
    
    1
    2
    3
    4

delete

delete(rdbPredicates: RdbPredicates):Promise<number>

根据rdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    rdbPredicates

    RdbPredicates

    RdbPredicates的实例对象指定的删除条件。

  • 返回值:

    类型

    说明

    Promise<number>

    指定Promise回调函数。返回受影响的行数。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Lisa")
    let promise = rdbStore.delete(predicates)
    promise.then((rows) => {
        console.log(TAG + "delete rows: " + rows)
    }).catch((err) => {})
    
    1
    2
    3
    4
    5
    6

query

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

根据指定条件查询数据库中的数据,结果以callback形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    rdbPredicates

    RdbPredicates

    表示rdbPredicates的实例对象指定的查询条件。

    columns

    Array<string>

    表示要查询的列。如果值为空,则查询应用于所有列。

    callback

    AsyncCallback<ResultSet>

    指定callback回调函数。如果操作成功,则返回ResultSet对象。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Rose")
    rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
        console.log(TAG + "resultSet column names:" + resultSet.columnNames)
        console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
    
    1
    2
    3
    4
    5

query

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

根据指定条件查询数据库中的数据,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    rdbPredicates

    RdbPredicates

    表示rdbPredicates的实例对象指定的查询条件。

    columns

    Array<string>

    表示要查询的列。如果值为空,则查询应用于所有列。

  • 返回值:

    类型

    说明

    Promise<ResultSet>

    指定Promise回调函数。如果操作成功,则返回ResultSet对象。

  • 示例:

    let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
    predicates.equalTo("NAME", "Rose")
    let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
    promise.then((resultSet) => {
        console.log(TAG + "resultSet column names:" + resultSet.columnNames)
        console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
    
    1
    2
    3
    4
    5
    6

executeSql

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

执行包含指定参数但不返回值的SQL语句,结果以callbck形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    sql

    string

    指定要执行的SQL语句。

    bindArgs

    Array<ValueType>

    SQL语句中参数的值。

    callback

    AsyncCallback<void>

    指定callback回调函数。

  • 示例:

    rdbStore.executeSql("DELETE FROM EMPLOYEE", function () {
        console.info(TAG + 'delete done.')})
    
    1
    2

executeSql

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

执行包含指定参数但不返回值的SQL语句,结果以Promise形式返回。

  • 参数:

    参数名

    类型

    必填

    说明

    sql

    string

    指定要执行的SQL语句。

    bindArgs

    Array<ValueType>

    SQL语句中参数的值。

  • 返回值:

    类型

    说明

    Promise<void>

    指定Promise回调函数。

  • 示例:

    let promise = rdbStore.executeSql("DELETE FROM EMPLOYEE")
    promise.then(() => {
        console.info(TAG + 'delete done.')})
    
    1
    2
    3

StoreConfig

管理关系数据库配置。

参数名

类型

必填

说明

name

string

数据库文件名。

ValueType

用于表示允许的数据字段类型。

名称

说明

number

表示值类型为数字。

string

表示值类型为字符。

boolean

表示值类型为布尔值。

ValuesBucket

用于存储键值对。

名称

参数类型

必填

说明

[key: string]

ValueType| Uint8Array | null

用于存储键值对。