鴻蒙OS RdbStore

2022-08-11 17:50 更新

RdbStore

public interface RdbStore

提供管理關(guān)系數(shù)據(jù)庫 (RDB) 的方法。

此類提供用于創(chuàng)建、查詢、更新和刪除 RDB 的方法。

嵌套類摘要

修飾符和類型 接口 描述
static class RdbStore.ConflictResolution 表示解決沖突的方法的類型。

字段摘要

修飾符和類型 字段 描述
static int MAX_BATCH_INSERT_SIZE

方法總結(jié)

修飾符和類型 方法 描述
void addAttach(String alias, String name, byte[] encryptKey) 附加數(shù)據(jù)庫。
boolean backup(String destName) 以指定名稱備份數(shù)據(jù)庫。
boolean backup(String destName, byte[] destEncryptKey) 使用指定的加密密鑰以指定名稱備份數(shù)據(jù)庫。
ListLong batchInsertOrThrowException(String tableName, ListValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution) 根據(jù)沖突處理策略將數(shù)據(jù)批量插入數(shù)據(jù)庫。
void beginTransaction() 以 EXCLUSIVE 模式開始事務(wù)。
void beginTransactionWithObserver(TransactionObserver transactionObserver) 使用偵聽器以獨(dú)占模式開始事務(wù)。
Statement buildStatement(String sql) 將 SQL 語句編譯成可重用的語句。
void changeEncryptKey(byte[] newEncryptKey) 更改打開的加密數(shù)據(jù)庫的加密密鑰。
boolean checkIntegrity() 檢查主數(shù)據(jù)庫和附加數(shù)據(jù)庫的完整性。
void close() 關(guān)閉一個 RDB。
void configLocale(Locale locale) 設(shè)置數(shù)據(jù)庫區(qū)域設(shè)置。
long count(String tableName, String whereClause, String[] whereArgs) 查詢RDB存儲中滿足指定條件的行數(shù)。
long count(AbsRdbPredicates absRdbPredicates) 獲取數(shù)據(jù)滿足 AbsRdbPredicates 的指定實(shí)例對象的行數(shù)。
int delete(AbsRdbPredicates absRdbPredicates) 根據(jù) AbsRdbPredicates 的指定實(shí)例對象從數(shù)據(jù)庫中刪除數(shù)據(jù)。
void endTransaction() 結(jié)束交易。
void executeSql(String sql) 執(zhí)行不返回值的 SQL 語句。
void executeSql(String sql, Object[] sqlArgs) 執(zhí)行包含指定參數(shù)但不返回值的 SQL 語句。
String getPath() 獲取數(shù)據(jù)庫文件的路徑。
int getVersion() 獲取數(shù)據(jù)庫版本。
void giveConnectionTemporarily(long milliseconds) 暫時斷開與數(shù)據(jù)庫的連接以允許其他線程使用數(shù)據(jù)庫。
long insert(String table, ValuesBucket initialValues) 在目標(biāo)表中插入一行數(shù)據(jù)。
long insertOrThrowException(String table, ValuesBucket initialValues) 在目標(biāo)表中插入一行數(shù)據(jù)。
long insertWithConflictResolution(String table, ValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution) 在目標(biāo)表中插入一行數(shù)據(jù)并指定解決沖突的方法。
boolean isHoldingConnection() 檢查此線程是否擁有數(shù)據(jù)庫連接。
boolean isInTransaction() 檢查當(dāng)前線程是否正在進(jìn)行事務(wù)。
boolean isMemoryRdb() 檢查數(shù)據(jù)庫是否在內(nèi)存中打開。
boolean isOpen() 檢查數(shù)據(jù)庫是否打開。
boolean isReadOnly() 檢查數(shù)據(jù)庫是否以只讀模式打開。
ListPairString,String listAttached() 查詢附加數(shù)據(jù)庫列表。
void markAsCommit() 將當(dāng)前事務(wù)標(biāo)記為提交。
ResultSet query(AbsRdbPredicates absRdbPredicates, String[] columns) 根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)。
ResultSet queryByStep(AbsRdbPredicates absRdbPredicates, String[] columns) 根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)。
ResultSet querySql(String sql, String[] sqlArgs) 執(zhí)行一條 SQL 語句。
ResultSet querySqlByStep(String sql, String[] sqlArgs) 執(zhí)行 SQL 語句并指定結(jié)果集。
ResultSet querySqlWithHook(String sql, String[] sqlArgs, ResultSetHook resultSetHook) 執(zhí)行 SQL 語句并指定結(jié)果集。
ResultSet queryWithHook(AbsRdbPredicates absRdbPredicates, String[] columns, ResultSetHook resultSetHook) 根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)并指定結(jié)果集。
long replace(String table, ValuesBucket initialValues) 替換目標(biāo)表中的一行數(shù)據(jù)。
long replaceOrThrowException(String table, ValuesBucket initialValues) 替換目標(biāo)表中的一行數(shù)據(jù)。
boolean restore(String srcName) 從指定的未加密數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫。
boolean restore(String srcName, byte[] srcEncryptKey, byte[] destEncryptKey) 從指定的加密或未加密數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫。
void setVersion(int version) 設(shè)置新數(shù)據(jù)庫的版本。
String toString() 獲取數(shù)據(jù)庫存儲的描述。
int update(ValuesBucket values, AbsRdbPredicates absRdbPredicates) 根據(jù) AbsRdbPredicates 的指定實(shí)例對象更新數(shù)據(jù)庫中的數(shù)據(jù)。
int updateWithConflictResolution(ValuesBucket values, AbsRdbPredicates absRdbPredicates, RdbStore.ConflictResolution conflictResolution) 更新目標(biāo)表中的一行數(shù)據(jù),并指定解決沖突的方法。

字段詳細(xì)信息

MAX_BATCH_INSERT_SIZE

static final int MAX_BATCH_INSERT_SIZE

方法詳情

insert

long insert(String table, ValuesBucket initialValues)

在目標(biāo)表中插入一行數(shù)據(jù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
table 表示目標(biāo)表。
initialValues 表示要插入到表中的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與表的列名相關(guān)聯(lián)。

返回:

如果操作成功,則返回行 ID; 否則返回 -1。

insertOrThrowException

long insertOrThrowException(String table, ValuesBucket initialValues)

在目標(biāo)表中插入一行數(shù)據(jù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
table 表示目標(biāo)表。
initialValues 表示要插入到表中的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與表的列名相關(guān)聯(lián)。

返回:

如果操作成功,則返回行 ID; 否則返回 -1。

Throws:

Throw名稱 Throw描述
RdbException 如果發(fā)生 SQLite 數(shù)據(jù)庫錯誤,則引發(fā)此異常。 您必須自己處理此異常。

batchInsertOrThrowException

ListLong batchInsertOrThrowException(String tableName, ListValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution)

根據(jù)沖突處理策略將數(shù)據(jù)批量插入數(shù)據(jù)庫。

如果沖突處理策略為空,將使用默認(rèn)策略 ConflictResolution#ON_CONFLICT_NONE。 如果在數(shù)據(jù)插入過程中發(fā)生異常,操作會因沖突處理策略的類型而異。

  • ConflictResolution#ON_CONFLICT_ROLLBACK:如果發(fā)生數(shù)據(jù)沖突,數(shù)據(jù)庫列為空,或者數(shù)據(jù)庫列只有一個值,所有插入的數(shù)據(jù)將被回滾。
  • ConflictResolution#ON_CONFLICT_ABORT or ConflictResolution#ON_CONFLICT_FAIL:如果發(fā)生數(shù)據(jù)沖突,數(shù)據(jù)庫列為空,或者數(shù)據(jù)庫列只有一個值,插入的數(shù)據(jù)將被保留,并拋出異常。
  • ConflictResolution#ON_CONFLICT_IGNORE:如果發(fā)生數(shù)據(jù)沖突或數(shù)據(jù)庫列為空,將忽略異常,返回值-1。數(shù)據(jù)插入將繼續(xù),直到所有數(shù)據(jù)都插入數(shù)據(jù)庫。如果外鍵不存在或發(fā)生外鍵沖突,請參閱 ConflictResolution#ON_CONFLICT_ABORT。
  • ConflictResolution#ON_CONFLICT_REPLACE:如果發(fā)生數(shù)據(jù)沖突,或者數(shù)據(jù)庫列有默認(rèn)值或只有一個值,將替換沖突數(shù)據(jù)并繼續(xù)插入數(shù)據(jù),直到所有數(shù)據(jù)都插入數(shù)據(jù)庫。如果數(shù)據(jù)庫列沒有默認(rèn)值或發(fā)生外鍵沖突,請參閱 ConflictResolution#ON_CONFLICT_ABORT。

參數(shù):

參數(shù)名稱 參數(shù)描述
tableName 表示數(shù)據(jù)庫的表名。
initialValues 表示要插入數(shù)據(jù)庫的數(shù)據(jù)。
conflictResolution 表示沖突處理策略。

返回:

如果批量插入成功,則返回所有行的 ID。 如果使用 ConflictResolution#ON_CONFLICT_IGNORE 策略,則返回的列表可能包含 -1。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果表名為 null 或空字符串、initialValues 為 null 或空列表、initialValues 中的值為 null 或空字符串,或者 initialValues 中的值數(shù)量超過 RdbStore#MAX_BATCH_INSERT_SIZE,則拋出此異常。
RdbException 如果數(shù)據(jù)插入數(shù)據(jù)庫失敗,則拋出此異常。

replace

long replace(String table, ValuesBucket initialValues)

替換目標(biāo)表中的一行數(shù)據(jù)。

如果目標(biāo)行不存在,則此方法插入一行。

參數(shù):

參數(shù)名稱 參數(shù)描述
table 表示目標(biāo)表。
initialValues 表示用于替換目標(biāo)表中的數(shù)據(jù)行的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與表的列名相關(guān)聯(lián)。

返回:

如果操作成功,則返回行 ID; 否則返回 -1。

replaceOrThrowException

long replaceOrThrowException(String table, ValuesBucket initialValues)

替換目標(biāo)表中的一行數(shù)據(jù)。

如果目標(biāo)行不存在,則此方法插入一行。

參數(shù):

參數(shù)名稱 參數(shù)描述
table 表示目標(biāo)表。
initialValues 表示用于替換目標(biāo)表中的數(shù)據(jù)行的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與表的列名相關(guān)聯(lián)。

返回:

如果操作成功,則返回行 ID; 否則返回 -1。

Throws:

Throw名稱 Throw描述
RdbException 如果發(fā)生 SQLite 數(shù)據(jù)庫錯誤,則引發(fā)此異常。 您必須自己處理此異常。

insertWithConflictResolution

long insertWithConflictResolution(String table, ValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution)

在目標(biāo)表中插入一行數(shù)據(jù)并指定解決沖突的方法。

參數(shù):

參數(shù)名稱 參數(shù)描述
table 表示目標(biāo)表。
initialValues 表示要插入到表中的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與表的列名相關(guān)聯(lián)。
conflictResolution 表示解決沖突的方法。

返回:

如果操作成功,則返回行 ID; 否則返回 -1。

delete

int delete(AbsRdbPredicates absRdbPredicates)

根據(jù) AbsRdbPredicates 的指定實(shí)例對象從數(shù)據(jù)庫中刪除數(shù)據(jù)。

您可以傳遞 AbsRdbPredicates 的實(shí)例對象,例如 RdbPredicates 和 RawRdbPredicates 來指定刪除條件。 如果傳入 RdbPredicates 對象,可以調(diào)用 RdbPredicates#equalTo 等方法設(shè)置刪除條件。 如果傳遞 RawRdbPredicates 對象,則只能設(shè)置數(shù)據(jù)庫 tableName、whereClause 和 whereArgs。 whereArgs 是 whereClause 中占位符的值,必須與占位符的順序相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
absRdbPredicates 指示 AbsRdbPredicates 的實(shí)例對象指定的刪除條件。

返回:

返回受影響的行數(shù)。

update

int update(ValuesBucket values, AbsRdbPredicates absRdbPredicates)

根據(jù) AbsRdbPredicates 的指定實(shí)例對象更新數(shù)據(jù)庫中的數(shù)據(jù)。

您可以傳遞RdbPredicates 和RawRdbPredicates 等AbsRdbPredicates 的實(shí)例對象來指定更新條件。 如果傳遞 RdbPredicates 對象,則可以調(diào)用 RdbPredicates#equalTo 等方法設(shè)置更新條件。 如果傳遞 RawRdbPredicates 對象,則只能設(shè)置數(shù)據(jù)庫 tableName、whereClause 和 whereArgs。 whereArgs 是 whereClause 中占位符的值,必須與占位符的順序相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
values 表示數(shù)據(jù)庫中要更新的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與數(shù)據(jù)庫表的列名相關(guān)聯(lián)。
absRdbPredicates 通過 AbsRdbPredicates 的實(shí)例對象指示指定的更新條件。

返回:

返回受影響的行數(shù)。

updateWithConflictResolution

int updateWithConflictResolution(ValuesBucket values, AbsRdbPredicates absRdbPredicates, RdbStore.ConflictResolution conflictResolution)

更新目標(biāo)表中的一行數(shù)據(jù),并指定解決沖突的方法。

參數(shù):

參數(shù)名稱 參數(shù)描述
values 表示要插入到表中的數(shù)據(jù)行。 數(shù)據(jù)包含存儲在 ValuesBucket 中的鍵值對。 鍵值對與表的列名相關(guān)聯(lián)。
absRdbPredicates 通過 RdbPredicates 的實(shí)例對象指示指定的更新條件。
conflictResolution 表示解決沖突的方法。

返回:

返回受影響的行數(shù)。

query

ResultSet query(AbsRdbPredicates absRdbPredicates, String[] columns)

根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
absRdbPredicates 表示查詢條件。
columns 表示要查詢的列。 如果值為 null,則查詢適用于所有列。

返回:

如果操作成功,則返回一個 ResultSet 對象;

queryWithHook

ResultSet queryWithHook(AbsRdbPredicates absRdbPredicates, String[] columns, ResultSetHook resultSetHook)

根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)并指定結(jié)果集。

參數(shù):

參數(shù)名稱 參數(shù)描述
absRdbPredicates 表示查詢條件。
resultSetHook 指示要使用的結(jié)果集工廠。
columns 表示要查詢的列。 如果值為 null,則查詢適用于所有列。

返回:

如果操作成功,則返回一個 ResultSet 對象;

querySql

ResultSet querySql(String sql, String[] sqlArgs)

執(zhí)行一條 SQL 語句。

參數(shù):

參數(shù)名稱 參數(shù)描述
sql 指示要執(zhí)行的 SQL 語句。
sqlArgs 表示SQL語句中的參數(shù)值。 值是字符串。

返回:

如果操作成功,則返回一個 ResultSet 對象;

querySqlWithHook

ResultSet querySqlWithHook(String sql, String[] sqlArgs, ResultSetHook resultSetHook)

執(zhí)行 SQL 語句并指定結(jié)果集。

參數(shù):

參數(shù)名稱 參數(shù)描述
resultSetHook 指示要使用的結(jié)果集工廠。
sql 指示要執(zhí)行的 SQL 語句。
sqlArgs 表示SQL語句中的參數(shù)值。 值是字符串。

返回:

如果操作成功,則返回一個 ResultSet 對象;

queryByStep

ResultSet queryByStep(AbsRdbPredicates absRdbPredicates, String[] columns)

根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
absRdbPredicates 表示查詢條件。
columns 表示要查詢的列。 如果值為 null,則查詢適用于所有列。

返回:

如果操作成功,則返回一個 ResultSet 對象

querySqlByStep

ResultSet querySqlByStep(String sql, String[] sqlArgs)

執(zhí)行 SQL 語句并指定結(jié)果集。

參數(shù):

參數(shù)名稱 參數(shù)描述
sql 指示要執(zhí)行的 SQL 語句。
sqlArgs 表示SQL語句中的參數(shù)值。 值是字符串。

返回:

如果操作成功,則返回一個 ResultSet 對象;

executeSql

void executeSql(String sql)

執(zhí)行不返回值的 SQL 語句。

不要使用這種方法通過“PRAGMA journal_mode'value'”語句來改變數(shù)據(jù)庫連接的journal_mode。

參數(shù):

參數(shù)名稱 參數(shù)描述
sql 指示要執(zhí)行的 SQL 語句。

Throws:

Throw名稱 Throw描述
RdbException 如果 SQL 語句無效,則引發(fā)此異常。 您必須自己處理此異常。

executeSql

void executeSql(String sql, Object[] sqlArgs)

執(zhí)行包含指定參數(shù)但不返回值的 SQL 語句。

不要使用這種方法通過“PRAGMA journal_mode'value'”語句來改變數(shù)據(jù)庫連接的journal_mode。

參數(shù):

參數(shù)名稱 參數(shù)描述
sql 指示要執(zhí)行的 SQL 語句。
sqlArgs 表示SQL語句中的參數(shù)值。 值是字符串。

Throws:

Throw名稱 Throw描述
RdbException 如果 SQL 語句無效,則引發(fā)此異常。 您必須自己處理此異常。

buildStatement

Statement buildStatement(String sql)

將 SQL 語句編譯成可重用的語句。

一個語句不能被兩個線程同時使用。

參數(shù):

參數(shù)名稱 參數(shù)描述
sql 指示要編譯的 SQL 語句。

返回:

返回一個 Statement 對象,它表示一個預(yù)編譯的 SQL 語句。

count

long count(String tableName, String whereClause, String[] whereArgs)

查詢RDB存儲中滿足指定條件的行數(shù)。

要獲得可執(zhí)行的SQL查詢語句,將表名和條件子句連接成字符串select count(*) from tableName whereClause,并將字符串中的問號(?)替換為whereArgs中的值。 這樣就可以調(diào)用Statement#executeAndGetLong執(zhí)行SQL查詢語句,獲取滿足指定條件的行數(shù)。 如果 whereClause 為 null 或?yàn)榭眨瑒t返回表中的總行數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
tableName 表示數(shù)據(jù)庫表的名稱。 如果為 null 或?yàn)榭?,則拋出 IllegalArgumentException。
whereClause 表示一個可選的條件子句,例如 id =? 和 name like?,其中id和name是數(shù)據(jù)庫表的列。
whereArgs 指示包含用于替換 whereClause 中問號 (?) 的值的數(shù)組。

返回:

返回 RDB 存儲中滿足指定條件的行數(shù)。

count

long count(AbsRdbPredicates absRdbPredicates)

獲取數(shù)據(jù)滿足 AbsRdbPredicates 的指定實(shí)例對象的行數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
absRdbPredicates 表示 AbsRdbPredicates 的實(shí)例對象指定的計(jì)數(shù)條件。

返回:

返回?cái)?shù)據(jù)滿足 AbsRdbPredicates 的指定實(shí)例對象的行數(shù)。

addAttach

void addAttach(String alias, String name, byte[] encryptKey)

附加數(shù)據(jù)庫。

參數(shù):

參數(shù)名稱 參數(shù)描述
alias 指示要附加的數(shù)據(jù)庫的別名。
name 指示要附加的數(shù)據(jù)庫的名稱。
encryptKey 指示用于加密要附加的數(shù)據(jù)庫的密鑰。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果別名為 null,則引發(fā)此異常。

listAttached

ListPairString,String listAttached()

查詢附加數(shù)據(jù)庫列表。

返回:

返回附加數(shù)據(jù)庫的列表,包括它們的名稱和路徑。 主數(shù)據(jù)庫也包含在列表中。

changeEncryptKey

void changeEncryptKey(byte[] newEncryptKey)

更改打開的加密數(shù)據(jù)庫的加密密鑰。

此方法僅適用于加密數(shù)據(jù)庫,不能用于將其更改為未加密數(shù)據(jù)庫。 在調(diào)用此方法之前,請確保數(shù)據(jù)庫已打開并且沒有事務(wù)正在使用數(shù)據(jù)庫連接。

參數(shù):

參數(shù)名稱 參數(shù)描述
newEncryptKey 表示數(shù)據(jù)庫的新加密密鑰。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果新的加密密鑰為 null 或空字符串,則引發(fā)此異常。
IllegalStateException 如果數(shù)據(jù)庫未打開或未加密,或者事務(wù)正在使用數(shù)據(jù)庫連接,則引發(fā)此異常。
RdbException 如果更改加密數(shù)據(jù)庫的加密密鑰失敗,則拋出此異常。

getVersion

int getVersion()

獲取數(shù)據(jù)庫版本。

返回:

返回?cái)?shù)據(jù)庫版本。

setVersion

void setVersion(int version)

設(shè)置新數(shù)據(jù)庫的版本。

參數(shù):

參數(shù)名稱 參數(shù)描述
version 指示要設(shè)置的數(shù)據(jù)庫版本。

beginTransaction

void beginTransaction()

以 EXCLUSIVE 模式開始事務(wù)。

endTransaction() 方法用于結(jié)束事務(wù)。 如果在事務(wù)結(jié)束時沒有使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則所有更改都會回滾。

beginTransactionWithObserver

void beginTransactionWithObserver(TransactionObserver transactionObserver)

使用偵聽器以獨(dú)占模式開始事務(wù)。

endTransaction() 方法用于結(jié)束事務(wù)。 如果在事務(wù)結(jié)束時沒有使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則所有更改都會回滾。

參數(shù):

參數(shù)名稱 參數(shù)描述
transactionObserver 提供可以在事務(wù)啟動、提交或回滾時調(diào)用的回調(diào)方法。

markAsCommit

void markAsCommit()

將當(dāng)前事務(wù)標(biāo)記為提交。

調(diào)用該方法后,在調(diào)用 endTransaction() 方法之前不要進(jìn)行任何操作。 無論是否發(fā)生錯誤,事務(wù)都將被提交。

endTransaction

void endTransaction()

結(jié)束事務(wù)。

isInTransaction

boolean isInTransaction()

檢查當(dāng)前線程是否正在進(jìn)行事務(wù)。

返回:

如果當(dāng)前線程正在進(jìn)行事務(wù),則返回 true; 否則返回 false。

giveConnectionTemporarily

void giveConnectionTemporarily(long milliseconds)

暫時斷開與數(shù)據(jù)庫的連接以允許其他線程使用數(shù)據(jù)庫。

該方法可用于提交當(dāng)前事務(wù)并暫時斷開與數(shù)據(jù)庫的連接,以便其他線程可以使用數(shù)據(jù)庫。 在指定的時間段后,將開始新的交易。 使用此方法時,請確保當(dāng)前事務(wù)已啟動,并且該事務(wù)未使用 markAsCommit() 方法標(biāo)記為已提交; 否則,調(diào)用此方法將失敗。 在調(diào)用此方法之前所做的任何更改都無法回滾。

參數(shù):

參數(shù)名稱 參數(shù)描述
milliseconds 指示當(dāng)前連接從數(shù)據(jù)庫中斷的持續(xù)時間(毫秒)。

Throws:

Throw名稱 Throw描述
IllegalStateException 如果當(dāng)前線程不包含事務(wù)或包含嵌套事務(wù),或者在調(diào)用此方法之前已使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則拋出此異常。

isHoldingConnection

boolean isHoldingConnection()

檢查此線程是否擁有數(shù)據(jù)庫連接。

返回:

如果此線程擁有數(shù)據(jù)庫連接,則返回 true; 否則返回 false。

isOpen

boolean isOpen()

檢查數(shù)據(jù)庫是否打開。

返回:

如果數(shù)據(jù)庫已打開,則返回 true; 否則返回 false。

getPath

String getPath()

獲取數(shù)據(jù)庫文件的路徑。

返回:

返回?cái)?shù)據(jù)庫文件的路徑。

isReadOnly

boolean isReadOnly()

檢查數(shù)據(jù)庫是否以只讀模式打開。

返回:

如果數(shù)據(jù)庫以只讀模式打開,則返回 true; 否則返回 false。

isMemoryRdb

boolean isMemoryRdb()

檢查數(shù)據(jù)庫是否在內(nèi)存中打開。

返回:

如果數(shù)據(jù)庫在內(nèi)存中打開,則返回 true; 否則返回 false。

checkIntegrity

boolean checkIntegrity()

檢查主數(shù)據(jù)庫和附加數(shù)據(jù)庫的完整性。

此方法調(diào)用 SQLite 數(shù)據(jù)庫的完整性檢查命令。

返回:

如果數(shù)據(jù)庫是完整的,則返回 true; 否則返回 false。

close

void close()

關(guān)閉一個 RDB。

不能再使用封閉的 RDB。

backup

boolean backup(String destName)

以指定名稱備份數(shù)據(jù)庫。

生成的備份文件未加密。

參數(shù):

參數(shù)名稱 參數(shù)描述
destName 表示保存數(shù)據(jù)庫備份的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫入權(quán)限。

返回:

如果數(shù)據(jù)庫備份成功返回true; 否則返回 false。

restore

boolean restore(String srcName)

從指定的未加密數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫。

調(diào)用該方法時,會刪除原始數(shù)據(jù)并生成未加密的數(shù)據(jù)庫。

參數(shù):

參數(shù)名稱 參數(shù)描述
srcName 表示保存未加密數(shù)據(jù)庫文件的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫入權(quán)限。

返回:

如果數(shù)據(jù)庫恢復(fù)成功,則返回 true; 否則返回 false。

backup

boolean backup(String destName, byte[] destEncryptKey)

使用指定的加密密鑰以指定名稱備份數(shù)據(jù)庫。

生成的備份已加密。 如果 destEncryptKey 為 null,則生成的備份未加密。 在這種情況下,此方法等效于 RdbStore#backup(String) 方法。

參數(shù):

參數(shù)名稱 參數(shù)描述
destName 表示保存數(shù)據(jù)庫備份的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫入權(quán)限。
destEncryptKey 指示要備份的數(shù)據(jù)庫的加密密鑰。 它可以與當(dāng)前數(shù)據(jù)庫的不同。

返回:

如果數(shù)據(jù)庫備份成功返回true; 否則返回 false。

restore

boolean restore(String srcName, byte[] srcEncryptKey, byte[] destEncryptKey)

從指定的加密或未加密數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫。

當(dāng)被調(diào)用時,此方法會刪除原始數(shù)據(jù)并生成一個加密或未加密的數(shù)據(jù)庫,由您的應(yīng)用程序定義。 如果 srcEncryptKey 和 destEncryptKey 都為 null,則此方法等效于 RdbStore#restore(String) 方法。

參數(shù):

參數(shù)名稱 參數(shù)描述
srcName 表示存儲源數(shù)據(jù)庫文件的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫入權(quán)限。
srcEncryptKey 表示源數(shù)據(jù)庫的加密密鑰。 如果數(shù)據(jù)庫未加密,則將此參數(shù)的值設(shè)置為 null。
destEncryptKey 表示恢復(fù)的數(shù)據(jù)庫的加密密鑰。如果希望數(shù)據(jù)庫不加密,則將該參數(shù)的值設(shè)置為null。

返回:

如果數(shù)據(jù)庫恢復(fù)成功,則返回 true; 否則返回 false。

configLocale

void configLocale(Locale locale)

設(shè)置數(shù)據(jù)庫區(qū)域設(shè)置。

如果數(shù)據(jù)庫是只讀的或數(shù)據(jù)集在事務(wù)中,則此方法不可用。 數(shù)據(jù)庫區(qū)域設(shè)置好后,可以使用 select from table where column=xxxx COLLATE LOCALES; 或按列 COLLATE LOCALES ASC 從測試訂單中選擇 ; 在本地對數(shù)據(jù)進(jìn)行排序和查詢。

參數(shù):

參數(shù)名稱 參數(shù)描述
locale 指示要設(shè)置的語言環(huán)境。

toString

String toString()

獲取數(shù)據(jù)庫存儲的描述。

覆蓋:

類 Object 中的 toString

返回:

返回 RdbStore 的描述。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號