av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS訪問(wèn)Data

開發(fā)者可以通過(guò) DataAbilityHelper 類來(lái)訪問(wèn)當(dāng)前應(yīng)用或其他應(yīng)用提供的共享數(shù)據(jù)。 DataAbilityHelper 作為客戶端,與提供方的 Data 進(jìn)行通信。Data 接收到請(qǐng)求后,執(zhí)行相應(yīng)的處理,并返回結(jié)果。DataAbilityHelper 提供了一系列與 Data Ability 對(duì)應(yīng)的方法。

創(chuàng)新互聯(lián)建站專注于彭州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。彭州網(wǎng)站建設(shè)公司,為彭州等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

下面介紹 DataAbilityHelper 具體的使用步驟。

聲明使用權(quán)限

如果待訪問(wèn)的 Data 聲明了訪問(wèn)需要權(quán)限,則訪問(wèn)此 Data 需要在配置文件中聲明需要此權(quán)限。聲明請(qǐng)參考權(quán)限申請(qǐng)字段說(shuō)明。

"reqPermissions": [
    {
        "name": "com.example.myapplication5.DataAbility.DATA"
    }
]

創(chuàng)建 DataAbilityHelper

DataAbilityHelper為開發(fā)者提供了creator()方法來(lái)創(chuàng)建DataAbilityHelper實(shí)例。該方法為靜態(tài)方法,有多個(gè)重載。最常見(jiàn)的方法是通過(guò)傳入一個(gè)context對(duì)象來(lái)創(chuàng)建DataAbilityHelper對(duì)象。

獲取helper對(duì)象示例:

DataAbilityHelper helper = DataAbilityHelper.creator(this);

訪問(wèn)Data Ability

DataAbilityHelper 為開發(fā)者提供了一系列的接口來(lái)訪問(wèn)不同類型的數(shù)據(jù)(文件、數(shù)據(jù)庫(kù)等)。

  • 訪問(wèn)文件

DataAbilityHelper 為開發(fā)者提供了 FileDescriptor openFile (Uri uri, String mode)方法來(lái)操作文件。此方法需要傳入兩個(gè)參數(shù),其中 uri 用來(lái)確定目標(biāo)資源路徑,mode 用來(lái)指定打開文件的方式,可選方式包含“r”(讀), “w”(寫), “rw”(讀寫),“wt”(覆蓋寫),“wa”(追加寫),“rwt”(覆蓋寫且可讀)。

該方法返回一個(gè)目標(biāo)文件的 FD(文件描述符),把文件描述符封裝成流,開發(fā)者就可以對(duì)文件流進(jìn)行自定義處理。

訪問(wèn)文件示例:

  // 讀取文件描述符
  FileDescriptor fd = helper.openFile(uri, "r");
  FileInputStream fis = new FileInputStream(fd);

  • 訪問(wèn)數(shù)據(jù)庫(kù)

DataAbilityHelper 為開發(fā)者提供了增、刪、改、查以及批量處理等方法來(lái)操作數(shù)據(jù)庫(kù)。

方法 描述
ResultSet query(Uri uri, String[] columns, DataAbilityPredicates predicates) 查詢數(shù)據(jù)庫(kù)
int insert(Uri uri, ValuesBucket value) 向數(shù)據(jù)庫(kù)中插入單條數(shù)據(jù)
int batchInsert(Uri uri, ValuesBucket[] values) 向數(shù)據(jù)庫(kù)中插入多條數(shù)據(jù)
int delete(Uri uri, DataAbilityPredicates predicates) 刪除一條或多條數(shù)據(jù)
int update(Uri uri, ValuesBucket value, DataAbilityPredicates predicates) 更新數(shù)據(jù)庫(kù)
DataAbilityResult[] executeBatch(ArrayList operations) 批量操作數(shù)據(jù)庫(kù)

這些方法的使用說(shuō)明如下:

  • query()

查詢方法,其中 uri 為目標(biāo)資源路徑,columns 為想要查詢的字段。開發(fā)者的查詢條件可以通過(guò) DataAbilityPredicates 來(lái)構(gòu)建。查詢用戶表中 id 在 101-103 之間的用戶,并把結(jié)果打印出來(lái),代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造查詢條件
    DataAbilityPredicates predicates = new DataAbilityPredicates();
    predicates.between("userId", 101, 103);

     
    // 進(jìn)行查詢
    ResultSet resultSet = helper.query(uri,columns,predicates);

     
    // 處理結(jié)果
    resultSet.goToFirstRow();
    do{
        // 在此處理ResultSet中的記錄;
    }while(resultSet.goToNextRow());

  • insert()

新增方法,其中 uri 為目標(biāo)資源路徑,ValuesBucket 為要新增的對(duì)象。插入一條用戶信息的代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造插入數(shù)據(jù)
    ValuesBucket valuesBucket = new ValuesBucket();
    valuesBucket.putString("name", "Tom");
    valuesBucket.putInteger("age", 12);
    helper.insert(uri, valuesBucket);

  • batchInsert()

批量插入方法,和 insert() 類似。批量插入用戶信息的代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造插入數(shù)據(jù)
    ValuesBucket[] values = new ValuesBucket[2];
    value[0] = new ValuesBucket();
    value[0].putString("name", "Tom");
    value[0].putInteger("age", 12);
    value[1] = new ValuesBucket();
    value[1].putString("name", "Tom1");
    value[1].putInteger("age", 16);
    helper.batchInsert(uri, values);

  • delete()

刪除方法,其中刪除條件可以通過(guò) DataAbilityPredicates 來(lái)構(gòu)建。刪除用戶表中 id 在 101-103 之間的用戶,代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造刪除條件
    DataAbilityPredicates predicates = new DataAbilityPredicates();
    predicates.between("userId", 101,103);
    helper.delete(uri,predicates);

  • update()

更新方法,更新數(shù)據(jù)由 ValuesBucket 傳入,更新條件由 DataAbilityPredicates 來(lái)構(gòu)建。更新 id 為 102 的用戶,代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造更新條件
    DataAbilityPredicates predicates = new DataAbilityPredicates();
    predicates.equalTo("userId",102);

     
    // 構(gòu)造更新數(shù)據(jù)
    ValuesBucket valuesBucket = new ValuesBucket();
    valuesBucket.putString("name", "Tom");
    valuesBucket.putInteger("age", 12);
    helper.update(uri, valuesBucket, predicates);

  • executeBatch()

此方法用來(lái)執(zhí)行批量操作。DataAbilityOperation 中提供了設(shè)置操作類型、數(shù)據(jù)和操作條件的方法,開發(fā)者可自行設(shè)置自己要執(zhí)行的數(shù)據(jù)庫(kù)操作。插入多條數(shù)據(jù)的代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(abilityObj, insertUri);

     
    // 構(gòu)造批量操作
    ValuesBucket value1 = initSingleValue();
    DataAbilityOperation opt1 = DataAbilityOperation.newInsertBuilder(insertUri).withValuesBucket(value1).build();
    ValuesBucket value2 = initSingleValue2();
    DataAbilityOperation opt2 = DataAbilityOperation.newInsertBuilder(insertUri).withValuesBucket(value2).build();
    ArrayList operations = new ArrayList();
    operations.add(opt1);
    operations.add(opt2);
    DataAbilityResult[] result = helper.executeBatch(insertUri, operations);

分享題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS訪問(wèn)Data
轉(zhuǎn)載注明:http://uogjgqi.cn/article/dpphphe.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流