新聞中心
RdbStore

public interface RdbStore提供管理關(guān)系數(shù)據(jù)庫(kù) (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ù)庫(kù)。 |
| boolean | backup(String destName) | 以指定名稱備份數(shù)據(jù)庫(kù)。 |
| boolean | backup(String destName, byte[] destEncryptKey) | 使用指定的加密密鑰以指定名稱備份數(shù)據(jù)庫(kù)。 |
| ListLong | batchInsertOrThrowException(String tableName, ListValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution) | 根據(jù)沖突處理策略將數(shù)據(jù)批量插入數(shù)據(jù)庫(kù)。 |
| void | beginTransaction() | 以 EXCLUSIVE 模式開(kāi)始事務(wù)。 |
| void | beginTransactionWithObserver(TransactionObserver transactionObserver) | 使用偵聽(tīng)器以獨(dú)占模式開(kāi)始事務(wù)。 |
| Statement | buildStatement(String sql) | 將 SQL 語(yǔ)句編譯成可重用的語(yǔ)句。 |
| void | changeEncryptKey(byte[] newEncryptKey) | 更改打開(kāi)的加密數(shù)據(jù)庫(kù)的加密密鑰。 |
| boolean | checkIntegrity() | 檢查主數(shù)據(jù)庫(kù)和附加數(shù)據(jù)庫(kù)的完整性。 |
| void | close() | 關(guān)閉一個(gè) RDB。 |
| void | configLocale(Locale locale) | 設(shè)置數(shù)據(jù)庫(kù)區(qū)域設(shè)置。 |
| long | count(String tableName, String whereClause, String[] whereArgs) | 查詢RDB存儲(chǔ)中滿足指定條件的行數(shù)。 |
| long | count(AbsRdbPredicates absRdbPredicates) | 獲取數(shù)據(jù)滿足 AbsRdbPredicates 的指定實(shí)例對(duì)象的行數(shù)。 |
| int | delete(AbsRdbPredicates absRdbPredicates) | 根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。 |
| void | endTransaction() | 結(jié)束交易。 |
| void | executeSql(String sql) | 執(zhí)行不返回值的 SQL 語(yǔ)句。 |
| void | executeSql(String sql, Object[] sqlArgs) | 執(zhí)行包含指定參數(shù)但不返回值的 SQL 語(yǔ)句。 |
| String | getPath() | 獲取數(shù)據(jù)庫(kù)文件的路徑。 |
| int | getVersion() | 獲取數(shù)據(jù)庫(kù)版本。 |
| void | giveConnectionTemporarily(long milliseconds) | 暫時(shí)斷開(kāi)與數(shù)據(jù)庫(kù)的連接以允許其他線程使用數(shù)據(jù)庫(kù)。 |
| 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ù)庫(kù)連接。 |
| boolean | isInTransaction() | 檢查當(dāng)前線程是否正在進(jìn)行事務(wù)。 |
| boolean | isMemoryRdb() | 檢查數(shù)據(jù)庫(kù)是否在內(nèi)存中打開(kāi)。 |
| boolean | isOpen() | 檢查數(shù)據(jù)庫(kù)是否打開(kāi)。 |
| boolean | isReadOnly() | 檢查數(shù)據(jù)庫(kù)是否以只讀模式打開(kāi)。 |
| ListPairString,String | listAttached() | 查詢附加數(shù)據(jù)庫(kù)列表。 |
| void | markAsCommit() | 將當(dāng)前事務(wù)標(biāo)記為提交。 |
| ResultSet | query(AbsRdbPredicates absRdbPredicates, String[] columns) | 根據(jù)指定條件查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。 |
| ResultSet | queryByStep(AbsRdbPredicates absRdbPredicates, String[] columns) | 根據(jù)指定條件查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。 |
| ResultSet | querySql(String sql, String[] sqlArgs) | 執(zhí)行一條 SQL 語(yǔ)句。 |
| ResultSet | querySqlByStep(String sql, String[] sqlArgs) | 執(zhí)行 SQL 語(yǔ)句并指定結(jié)果集。 |
| ResultSet | querySqlWithHook(String sql, String[] sqlArgs, ResultSetHook resultSetHook) | 執(zhí)行 SQL 語(yǔ)句并指定結(jié)果集。 |
| ResultSet | queryWithHook(AbsRdbPredicates absRdbPredicates, String[] columns, ResultSetHook resultSetHook) | 根據(jù)指定條件查詢數(shù)據(jù)庫(kù)中的數(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ù)庫(kù)文件恢復(fù)數(shù)據(jù)庫(kù)。 |
| boolean | restore(String srcName, byte[] srcEncryptKey, byte[] destEncryptKey) | 從指定的加密或未加密數(shù)據(jù)庫(kù)文件恢復(fù)數(shù)據(jù)庫(kù)。 |
| void | setVersion(int version) | 設(shè)置新數(shù)據(jù)庫(kù)的版本。 |
| String | toString() | 獲取數(shù)據(jù)庫(kù)存儲(chǔ)的描述。 |
| int | update(ValuesBucket values, AbsRdbPredicates absRdbPredicates) | 根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象更新數(shù)據(jù)庫(kù)中的數(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ù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與表的列名相關(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ù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與表的列名相關(guān)聯(lián)。 |
返回:
如果操作成功,則返回行 ID; 否則返回 -1。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| RdbException | 如果發(fā)生 SQLite 數(shù)據(jù)庫(kù)錯(cuò)誤,則引發(fā)此異常。 您必須自己處理此異常。 |
batchInsertOrThrowException
ListLong batchInsertOrThrowException(String tableName, ListValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution)
根據(jù)沖突處理策略將數(shù)據(jù)批量插入數(shù)據(jù)庫(kù)。
如果沖突處理策略為空,將使用默認(rèn)策略 ConflictResolution#ON_CONFLICT_NONE。 如果在數(shù)據(jù)插入過(guò)程中發(fā)生異常,操作會(huì)因沖突處理策略的類型而異。
- ConflictResolution#ON_CONFLICT_ROLLBACK:如果發(fā)生數(shù)據(jù)沖突,數(shù)據(jù)庫(kù)列為空,或者數(shù)據(jù)庫(kù)列只有一個(gè)值,所有插入的數(shù)據(jù)將被回滾。
- ConflictResolution#ON_CONFLICT_ABORT or ConflictResolution#ON_CONFLICT_FAIL:如果發(fā)生數(shù)據(jù)沖突,數(shù)據(jù)庫(kù)列為空,或者數(shù)據(jù)庫(kù)列只有一個(gè)值,插入的數(shù)據(jù)將被保留,并拋出異常。
- ConflictResolution#ON_CONFLICT_IGNORE:如果發(fā)生數(shù)據(jù)沖突或數(shù)據(jù)庫(kù)列為空,將忽略異常,返回值-1。數(shù)據(jù)插入將繼續(xù),直到所有數(shù)據(jù)都插入數(shù)據(jù)庫(kù)。如果外鍵不存在或發(fā)生外鍵沖突,請(qǐng)參閱 ConflictResolution#ON_CONFLICT_ABORT。
- ConflictResolution#ON_CONFLICT_REPLACE:如果發(fā)生數(shù)據(jù)沖突,或者數(shù)據(jù)庫(kù)列有默認(rèn)值或只有一個(gè)值,將替換沖突數(shù)據(jù)并繼續(xù)插入數(shù)據(jù),直到所有數(shù)據(jù)都插入數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)列沒(méi)有默認(rèn)值或發(fā)生外鍵沖突,請(qǐng)參閱 ConflictResolution#ON_CONFLICT_ABORT。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| tableName | 表示數(shù)據(jù)庫(kù)的表名。 |
| initialValues | 表示要插入數(shù)據(jù)庫(kù)的數(shù)據(jù)。 |
| conflictResolution | 表示沖突處理策略。 |
返回:
如果批量插入成功,則返回所有行的 ID。 如果使用 ConflictResolution#ON_CONFLICT_IGNORE 策略,則返回的列表可能包含 -1。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果表名為 null 或空字符串、initialValues 為 null 或空列表、initialValues 中的值為 null 或空字符串,或者 initialValues 中的值數(shù)量超過(guò) RdbStore#MAX_BATCH_INSERT_SIZE,則拋出此異常。 |
| RdbException | 如果數(shù)據(jù)插入數(shù)據(jù)庫(kù)失敗,則拋出此異常。 |
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ù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與表的列名相關(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ù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與表的列名相關(guān)聯(lián)。 |
返回:
如果操作成功,則返回行 ID; 否則返回 -1。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| RdbException | 如果發(fā)生 SQLite 數(shù)據(jù)庫(kù)錯(cuò)誤,則引發(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ù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與表的列名相關(guān)聯(lián)。 |
| conflictResolution | 表示解決沖突的方法。 |
返回:
如果操作成功,則返回行 ID; 否則返回 -1。
delete
int delete(AbsRdbPredicates absRdbPredicates)
根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。
您可以傳遞 AbsRdbPredicates 的實(shí)例對(duì)象,例如 RdbPredicates 和 RawRdbPredicates 來(lái)指定刪除條件。 如果傳入 RdbPredicates 對(duì)象,可以調(diào)用 RdbPredicates#equalTo 等方法設(shè)置刪除條件。 如果傳遞 RawRdbPredicates 對(duì)象,則只能設(shè)置數(shù)據(jù)庫(kù) tableName、whereClause 和 whereArgs。 whereArgs 是 whereClause 中占位符的值,必須與占位符的順序相同。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| absRdbPredicates | 指示 AbsRdbPredicates 的實(shí)例對(duì)象指定的刪除條件。 |
返回:
返回受影響的行數(shù)。
update
int update(ValuesBucket values, AbsRdbPredicates absRdbPredicates)
根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
您可以傳遞RdbPredicates 和RawRdbPredicates 等AbsRdbPredicates 的實(shí)例對(duì)象來(lái)指定更新條件。 如果傳遞 RdbPredicates 對(duì)象,則可以調(diào)用 RdbPredicates#equalTo 等方法設(shè)置更新條件。 如果傳遞 RawRdbPredicates 對(duì)象,則只能設(shè)置數(shù)據(jù)庫(kù) tableName、whereClause 和 whereArgs。 whereArgs 是 whereClause 中占位符的值,必須與占位符的順序相同。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| values | 表示數(shù)據(jù)庫(kù)中要更新的數(shù)據(jù)行。 數(shù)據(jù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與數(shù)據(jù)庫(kù)表的列名相關(guān)聯(lián)。 |
| absRdbPredicates | 通過(guò) AbsRdbPredicates 的實(shí)例對(duì)象指示指定的更新條件。 |
返回:
返回受影響的行數(shù)。
updateWithConflictResolution
int updateWithConflictResolution(ValuesBucket values, AbsRdbPredicates absRdbPredicates, RdbStore.ConflictResolution conflictResolution)
更新目標(biāo)表中的一行數(shù)據(jù),并指定解決沖突的方法。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| values | 表示要插入到表中的數(shù)據(jù)行。 數(shù)據(jù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與表的列名相關(guān)聯(lián)。 |
| absRdbPredicates | 通過(guò) RdbPredicates 的實(shí)例對(duì)象指示指定的更新條件。 |
| conflictResolution | 表示解決沖突的方法。 |
返回:
返回受影響的行數(shù)。
query
ResultSet query(AbsRdbPredicates absRdbPredicates, String[] columns)
根據(jù)指定條件查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| absRdbPredicates | 表示查詢條件。 |
| columns | 表示要查詢的列。 如果值為 null,則查詢適用于所有列。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
queryWithHook
ResultSet queryWithHook(AbsRdbPredicates absRdbPredicates, String[] columns, ResultSetHook resultSetHook)
根據(jù)指定條件查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)并指定結(jié)果集。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| absRdbPredicates | 表示查詢條件。 |
| resultSetHook | 指示要使用的結(jié)果集工廠。 |
| columns | 表示要查詢的列。 如果值為 null,則查詢適用于所有列。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
querySql
ResultSet querySql(String sql, String[] sqlArgs)
執(zhí)行一條 SQL 語(yǔ)句。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| sql | 指示要執(zhí)行的 SQL 語(yǔ)句。 |
| sqlArgs | 表示SQL語(yǔ)句中的參數(shù)值。 值是字符串。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
querySqlWithHook
ResultSet querySqlWithHook(String sql, String[] sqlArgs, ResultSetHook resultSetHook)
執(zhí)行 SQL 語(yǔ)句并指定結(jié)果集。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| resultSetHook | 指示要使用的結(jié)果集工廠。 |
| sql | 指示要執(zhí)行的 SQL 語(yǔ)句。 |
| sqlArgs | 表示SQL語(yǔ)句中的參數(shù)值。 值是字符串。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
queryByStep
ResultSet queryByStep(AbsRdbPredicates absRdbPredicates, String[] columns)
根據(jù)指定條件查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| absRdbPredicates | 表示查詢條件。 |
| columns | 表示要查詢的列。 如果值為 null,則查詢適用于所有列。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象
querySqlByStep
ResultSet querySqlByStep(String sql, String[] sqlArgs)
執(zhí)行 SQL 語(yǔ)句并指定結(jié)果集。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| sql | 指示要執(zhí)行的 SQL 語(yǔ)句。 |
| sqlArgs | 表示SQL語(yǔ)句中的參數(shù)值。 值是字符串。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
executeSql
void executeSql(String sql)
執(zhí)行不返回值的 SQL 語(yǔ)句。
不要使用這種方法通過(guò)“PRAGMA journal_mode'value'”語(yǔ)句來(lái)改變數(shù)據(jù)庫(kù)連接的journal_mode。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| sql | 指示要執(zhí)行的 SQL 語(yǔ)句。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| RdbException | 如果 SQL 語(yǔ)句無(wú)效,則引發(fā)此異常。 您必須自己處理此異常。 |
executeSql
void executeSql(String sql, Object[] sqlArgs)
執(zhí)行包含指定參數(shù)但不返回值的 SQL 語(yǔ)句。
不要使用這種方法通過(guò)“PRAGMA journal_mode'value'”語(yǔ)句來(lái)改變數(shù)據(jù)庫(kù)連接的journal_mode。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| sql | 指示要執(zhí)行的 SQL 語(yǔ)句。 |
| sqlArgs | 表示SQL語(yǔ)句中的參數(shù)值。 值是字符串。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| RdbException | 如果 SQL 語(yǔ)句無(wú)效,則引發(fā)此異常。 您必須自己處理此異常。 |
buildStatement
Statement buildStatement(String sql)
將 SQL 語(yǔ)句編譯成可重用的語(yǔ)句。
一個(gè)語(yǔ)句不能被兩個(gè)線程同時(shí)使用。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| sql | 指示要編譯的 SQL 語(yǔ)句。 |
返回:
返回一個(gè) Statement 對(duì)象,它表示一個(gè)預(yù)編譯的 SQL 語(yǔ)句。
count
long count(String tableName, String whereClause, String[] whereArgs)
查詢RDB存儲(chǔ)中滿足指定條件的行數(shù)。
要獲得可執(zhí)行的SQL查詢語(yǔ)句,將表名和條件子句連接成字符串select count(*) from tableName whereClause,并將字符串中的問(wèn)號(hào)(?)替換為whereArgs中的值。 這樣就可以調(diào)用Statement#executeAndGetLong執(zhí)行SQL查詢語(yǔ)句,獲取滿足指定條件的行數(shù)。 如果 whereClause 為 null 或?yàn)榭眨瑒t返回表中的總行數(shù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| tableName | 表示數(shù)據(jù)庫(kù)表的名稱。 如果為 null 或?yàn)榭?,則拋出 IllegalArgumentException。 |
| whereClause | 表示一個(gè)可選的條件子句,例如 id =? 和 name like?,其中id和name是數(shù)據(jù)庫(kù)表的列。 |
| whereArgs | 指示包含用于替換 whereClause 中問(wèn)號(hào) (?) 的值的數(shù)組。 |
返回:
返回 RDB 存儲(chǔ)中滿足指定條件的行數(shù)。
count
long count(AbsRdbPredicates absRdbPredicates)
獲取數(shù)據(jù)滿足 AbsRdbPredicates 的指定實(shí)例對(duì)象的行數(shù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| absRdbPredicates | 表示 AbsRdbPredicates 的實(shí)例對(duì)象指定的計(jì)數(shù)條件。 |
返回:
返回?cái)?shù)據(jù)滿足 AbsRdbPredicates 的指定實(shí)例對(duì)象的行數(shù)。
addAttach
void addAttach(String alias, String name, byte[] encryptKey)
附加數(shù)據(jù)庫(kù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| alias | 指示要附加的數(shù)據(jù)庫(kù)的別名。 |
| name | 指示要附加的數(shù)據(jù)庫(kù)的名稱。 |
| encryptKey | 指示用于加密要附加的數(shù)據(jù)庫(kù)的密鑰。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果別名為 null,則引發(fā)此異常。 |
listAttached
ListPairString,String listAttached()
查詢附加數(shù)據(jù)庫(kù)列表。
返回:
返回附加數(shù)據(jù)庫(kù)的列表,包括它們的名稱和路徑。 主數(shù)據(jù)庫(kù)也包含在列表中。
changeEncryptKey
void changeEncryptKey(byte[] newEncryptKey)
更改打開(kāi)的加密數(shù)據(jù)庫(kù)的加密密鑰。
此方法僅適用于加密數(shù)據(jù)庫(kù),不能用于將其更改為未加密數(shù)據(jù)庫(kù)。 在調(diào)用此方法之前,請(qǐng)確保數(shù)據(jù)庫(kù)已打開(kāi)并且沒(méi)有事務(wù)正在使用數(shù)據(jù)庫(kù)連接。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| newEncryptKey | 表示數(shù)據(jù)庫(kù)的新加密密鑰。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果新的加密密鑰為 null 或空字符串,則引發(fā)此異常。 |
| IllegalStateException | 如果數(shù)據(jù)庫(kù)未打開(kāi)或未加密,或者事務(wù)正在使用數(shù)據(jù)庫(kù)連接,則引發(fā)此異常。 |
| RdbException | 如果更改加密數(shù)據(jù)庫(kù)的加密密鑰失敗,則拋出此異常。 |
getVersion
int getVersion()
獲取數(shù)據(jù)庫(kù)版本。
返回:
返回?cái)?shù)據(jù)庫(kù)版本。
setVersion
void setVersion(int version)
設(shè)置新數(shù)據(jù)庫(kù)的版本。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| version | 指示要設(shè)置的數(shù)據(jù)庫(kù)版本。 |
beginTransaction
void beginTransaction()
以 EXCLUSIVE 模式開(kāi)始事務(wù)。
endTransaction() 方法用于結(jié)束事務(wù)。 如果在事務(wù)結(jié)束時(shí)沒(méi)有使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則所有更改都會(huì)回滾。
beginTransactionWithObserver
void beginTransactionWithObserver(TransactionObserver transactionObserver)
使用偵聽(tīng)器以獨(dú)占模式開(kāi)始事務(wù)。
endTransaction() 方法用于結(jié)束事務(wù)。 如果在事務(wù)結(jié)束時(shí)沒(méi)有使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則所有更改都會(huì)回滾。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| transactionObserver | 提供可以在事務(wù)啟動(dòng)、提交或回滾時(shí)調(diào)用的回調(diào)方法。 |
markAsCommit
void markAsCommit()
將當(dāng)前事務(wù)標(biāo)記為提交。
調(diào)用該方法后,在調(diào)用 endTransaction() 方法之前不要進(jìn)行任何操作。 無(wú)論是否發(fā)生錯(cuò)誤,事務(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í)斷開(kāi)與數(shù)據(jù)庫(kù)的連接以允許其他線程使用數(shù)據(jù)庫(kù)。
該方法可用于提交當(dāng)前事務(wù)并暫時(shí)斷開(kāi)與數(shù)據(jù)庫(kù)的連接,以便其他線程可以使用數(shù)據(jù)庫(kù)。 在指定的時(shí)間段后,將開(kāi)始新的交易。 使用此方法時(shí),請(qǐng)確保當(dāng)前事務(wù)已啟動(dòng),并且該事務(wù)未使用 markAsCommit() 方法標(biāo)記為已提交; 否則,調(diào)用此方法將失敗。 在調(diào)用此方法之前所做的任何更改都無(wú)法回滾。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| milliseconds | 指示當(dāng)前連接從數(shù)據(jù)庫(kù)中斷的持續(xù)時(shí)間(毫秒)。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalStateException | 如果當(dāng)前線程不包含事務(wù)或包含嵌套事務(wù),或者在調(diào)用此方法之前已使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則拋出此異常。 |
isHoldingConnection
boolean isHoldingConnection()
檢查此線程是否擁有數(shù)據(jù)庫(kù)連接。
返回:
如果此線程擁有數(shù)據(jù)庫(kù)連接,則返回 true; 否則返回 false。
isOpen
boolean isOpen()
檢查數(shù)據(jù)庫(kù)是否打開(kāi)。
返回:
如果數(shù)據(jù)庫(kù)已打開(kāi),則返回 true; 否則返回 false。
getPath
String getPath()
獲取數(shù)據(jù)庫(kù)文件的路徑。
返回:
返回?cái)?shù)據(jù)庫(kù)文件的路徑。
isReadOnly
boolean isReadOnly()
檢查數(shù)據(jù)庫(kù)是否以只讀模式打開(kāi)。
返回:
如果數(shù)據(jù)庫(kù)以只讀模式打開(kāi),則返回 true; 否則返回 false。
isMemoryRdb
boolean isMemoryRdb()
檢查數(shù)據(jù)庫(kù)是否在內(nèi)存中打開(kāi)。
返回:
如果數(shù)據(jù)庫(kù)在內(nèi)存中打開(kāi),則返回 true; 否則返回 false。
checkIntegrity
boolean checkIntegrity()
檢查主數(shù)據(jù)庫(kù)和附加數(shù)據(jù)庫(kù)的完整性。
此方法調(diào)用 SQLite 數(shù)據(jù)庫(kù)的完整性檢查命令。
返回:
如果數(shù)據(jù)庫(kù)是完整的,則返回 true; 否則返回 false。
close
void close()
關(guān)閉一個(gè) RDB。
不能再使用封閉的 RDB。
backup
boolean backup(String destName)
以指定名稱備份數(shù)據(jù)庫(kù)。
生成的備份文件未加密。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| destName | 表示保存數(shù)據(jù)庫(kù)備份的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫(xiě)入權(quán)限。 |
返回:
如果數(shù)據(jù)庫(kù)備份成功返回true; 否則返回 false。
restore
boolean restore(String srcName)
從指定的未加密數(shù)據(jù)庫(kù)文件恢復(fù)數(shù)據(jù)庫(kù)。
調(diào)用該方法時(shí),會(huì)刪除原始數(shù)據(jù)并生成未加密的數(shù)據(jù)庫(kù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| srcName | 表示保存未加密數(shù)據(jù)庫(kù)文件的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫(xiě)入權(quán)限。 |
返回:
如果數(shù)據(jù)庫(kù)恢復(fù)成功,則返回 true; 否則返回 false。
backup
boolean backup(String destName, byte[] destEncryptKey)
使用指定的加密密鑰以指定名稱備份數(shù)據(jù)庫(kù)。
生成的備份已加密。 如果 destEncryptKey 為 null,則生成的備份未加密。 在這種情況下,此方法等效于 RdbStore#backup(String) 方法。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| destName | 表示保存數(shù)據(jù)庫(kù)備份的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫(xiě)入權(quán)限。 |
| destEncryptKey | 指示要備份的數(shù)據(jù)庫(kù)的加密密鑰。 它可以與當(dāng)前數(shù)據(jù)庫(kù)的不同。 |
返回:
如果數(shù)據(jù)庫(kù)備份成功返回true; 否則返回 false。
restore
boolean restore(String srcName, byte[] srcEncryptKey, byte[] destEncryptKey)
從指定的加密或未加密數(shù)據(jù)庫(kù)文件恢復(fù)數(shù)據(jù)庫(kù)。
當(dāng)被調(diào)用時(shí),此方法會(huì)刪除原始數(shù)據(jù)并生成一個(gè)加密或未加密的數(shù)據(jù)庫(kù),由您的應(yīng)用程序定義。 如果 srcEncryptKey 和 destEncryptKey 都為 null,則此方法等效于 RdbStore#restore(String) 方法。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| srcName | 表示存儲(chǔ)源數(shù)據(jù)庫(kù)文件的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫(xiě)入權(quán)限。 |
| srcEncryptKey | 表示源數(shù)據(jù)庫(kù)的加密密鑰。 如果數(shù)據(jù)庫(kù)未加密,則將此參數(shù)的值設(shè)置為 null。 |
| destEncryptKey | 表示恢復(fù)的數(shù)據(jù)庫(kù)的加密密鑰。如果希望數(shù)據(jù)庫(kù)不加密,則將該參數(shù)的值設(shè)置為null。 |
返回:
如果數(shù)據(jù)庫(kù)恢復(fù)成功,則返回 true; 否則返回 false。
configLocale
void configLocale(Locale locale)
設(shè)置數(shù)據(jù)庫(kù)區(qū)域設(shè)置。
如果數(shù)據(jù)庫(kù)是只讀的或數(shù)據(jù)集在事務(wù)中,則此方法不可用。 數(shù)據(jù)庫(kù)區(qū)域設(shè)置好后,可以使用 select from table where column=xxxx COLLATE LOCALES; 或按列 COLLATE LOCALES ASC 從測(cè)試訂單中選擇 ; 在本地對(duì)數(shù)據(jù)進(jìn)行排序和查詢。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| locale | 指示要設(shè)置的語(yǔ)言環(huán)境。 |
toString
String toString()
獲取數(shù)據(jù)庫(kù)存儲(chǔ)的描述。
覆蓋:
類 Object 中的 toString
返回:
返回 RdbStore 的描述。
分享名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSRdbStore
分享地址:http://www.dlmjj.cn/article/djscgsi.html


咨詢
建站咨詢
