关系型数据库

About 17 min

关系型数据库

icon-note.gif 说明: 本模块首批接口从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", encryptKey: new Uint8Array([1, 2])}
    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 指示要与谓词匹配的值。
    支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。
  • 返回值:

    类型 说明
    RdbPredicates 返回与指定字段匹配的谓词。
  • 示例:

    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

querySql8+

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

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

  • 参数:

    参数名 类型 必填 说明
    sql string 指定要执行的SQL语句。
    bindArgs Array<ValueType> SQL语句中参数的值。
    callback AsyncCallback<ResultSet> 指定callback回调函数。如果操作成功,则返回ResultSet对象。
  • 示例:

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

querySql8+

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

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

  • 参数:

    参数名 类型 必填 说明
    sql string 指定要执行的SQL语句。
    bindArgs Array<ValueType> SQL语句中参数的值。
  • 返回值:

    类型 说明
    Promise<ResultSet> 指定Promise回调函数。如果操作成功,则返回ResultSet对象。
  • 示例:

    let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
    promise.then((resultSet) => {
        console.log(TAG + "resultSet column names:" + resultSet.columnNames)
        console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
    
    1
    2
    3
    4

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", null, 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

changeEncryptKey8+

changeEncryptKey(newEncryptKey:Uint8Array, callback: AsyncCallback<number>):void

修改数据库原有秘钥,结果以callbck形式返回。

  • 参数:

    参数名 类型 必填 说明
    newEncryptKey Uint8Array 要变更的数据库秘钥,不能为空。
    callback AsyncCallback<number> 指定callback回调函数。
  • 示例:

    var newKey = new Uint8Array([1, 2])
    rdbStore.changeEncryptKey(newKey, function (ret) {
        console.info(TAG + "result is " + ret)})
    
    1
    2
    3

changeEncryptKey8+

changeEncryptKey(newEncryptKey:Uint8Array): Promise<number>

修改数据库原有秘钥,结果以Promise形式返回。

  • 参数:

    参数名 类型 必填 说明
    newEncryptKey Uint8Array 要变更的数据库秘钥,不能为空。
  • 返回值:

    类型 说明
    Promise<number> 指定Promise回调函数。
  • 示例:

    var newKey = new Uint8Array([1, 2])
    let promise = rdbStore.changeEncryptKey(newKey)
    promise.then((ret) => {
        console.info(TAG + "result is " + ret)})
    
    1
    2
    3
    4

StoreConfig

管理关系数据库配置。

参数名 类型 必填 说明
name string 数据库文件名。
encryptKey8+ Uint8Array 对数据库加密的秘钥。在创建时加入,则为初始化秘钥。后续打开时,需要保证其一致性。

ValueType

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

名称 说明
number 表示值类型为数字。
string 表示值类型为字符。
boolean 表示值类型为布尔值。

ValuesBucket

用于存储键值对。

名称 参数类型 必填 说明
[key: string] ValueType| Uint8Array | null 用于存储键值对。