W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
public interface RdbStore
提供管理關(guān)系數(shù)據(jù)庫 (RDB) 的方法。
此類提供用于創(chuàng)建、查詢、更新和刪除 RDB 的方法。
修飾符和類型 | 接口 | 描述 |
---|---|---|
static class | RdbStore.ConflictResolution | 表示解決沖突的方法的類型。 |
修飾符和類型 | 字段 | 描述 |
---|---|---|
static int | MAX_BATCH_INSERT_SIZE |
修飾符和類型 | 方法 | 描述 |
---|---|---|
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)閉一個(gè) RDB。 |
void | configLocale(Locale locale) | 設(shè)置數(shù)據(jù)庫區(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ù)庫中刪除數(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í)斷開與數(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ù)庫存儲(chǔ)的描述。 |
int | update(ValuesBucket values, AbsRdbPredicates absRdbPredicates) | 根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象更新數(shù)據(jù)庫中的數(shù)據(jù)。 |
int | updateWithConflictResolution(ValuesBucket values, AbsRdbPredicates absRdbPredicates, RdbStore.ConflictResolution conflictResolution) | 更新目標(biāo)表中的一行數(shù)據(jù),并指定解決沖突的方法。 |
static final int MAX_BATCH_INSERT_SIZE
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。
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ù)庫錯(cuò)誤,則引發(fā)此異常。 您必須自己處理此異常。 |
ListLong batchInsertOrThrowException(String tableName, ListValuesBucket initialValues, RdbStore.ConflictResolution conflictResolution)
根據(jù)沖突處理策略將數(shù)據(jù)批量插入數(shù)據(jù)庫。
如果沖突處理策略為空,將使用默認(rèn)策略 ConflictResolution#ON_CONFLICT_NONE。 如果在數(shù)據(jù)插入過程中發(fā)生異常,操作會(huì)因沖突處理策略的類型而異。
參數(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ù)庫失敗,則拋出此異常。 |
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。
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ù)庫錯(cuò)誤,則引發(fā)此異常。 您必須自己處理此異常。 |
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。
int delete(AbsRdbPredicates absRdbPredicates)
根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象從數(shù)據(jù)庫中刪除數(shù)據(jù)。
您可以傳遞 AbsRdbPredicates 的實(shí)例對(duì)象,例如 RdbPredicates 和 RawRdbPredicates 來指定刪除條件。 如果傳入 RdbPredicates 對(duì)象,可以調(diào)用 RdbPredicates#equalTo 等方法設(shè)置刪除條件。 如果傳遞 RawRdbPredicates 對(duì)象,則只能設(shè)置數(shù)據(jù)庫 tableName、whereClause 和 whereArgs。 whereArgs 是 whereClause 中占位符的值,必須與占位符的順序相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
absRdbPredicates | 指示 AbsRdbPredicates 的實(shí)例對(duì)象指定的刪除條件。 |
返回:
返回受影響的行數(shù)。
int update(ValuesBucket values, AbsRdbPredicates absRdbPredicates)
根據(jù) AbsRdbPredicates 的指定實(shí)例對(duì)象更新數(shù)據(jù)庫中的數(shù)據(jù)。
您可以傳遞RdbPredicates 和RawRdbPredicates 等AbsRdbPredicates 的實(shí)例對(duì)象來指定更新條件。 如果傳遞 RdbPredicates 對(duì)象,則可以調(diào)用 RdbPredicates#equalTo 等方法設(shè)置更新條件。 如果傳遞 RawRdbPredicates 對(duì)象,則只能設(shè)置數(shù)據(jù)庫 tableName、whereClause 和 whereArgs。 whereArgs 是 whereClause 中占位符的值,必須與占位符的順序相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
values | 表示數(shù)據(jù)庫中要更新的數(shù)據(jù)行。 數(shù)據(jù)包含存儲(chǔ)在 ValuesBucket 中的鍵值對(duì)。 鍵值對(duì)與數(shù)據(jù)庫表的列名相關(guān)聯(lián)。 |
absRdbPredicates | 通過 AbsRdbPredicates 的實(shí)例對(duì)象指示指定的更新條件。 |
返回:
返回受影響的行數(shù)。
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 | 通過 RdbPredicates 的實(shí)例對(duì)象指示指定的更新條件。 |
conflictResolution | 表示解決沖突的方法。 |
返回:
返回受影響的行數(shù)。
ResultSet query(AbsRdbPredicates absRdbPredicates, String[] columns)
根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
absRdbPredicates | 表示查詢條件。 |
columns | 表示要查詢的列。 如果值為 null,則查詢適用于所有列。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
ResultSet queryWithHook(AbsRdbPredicates absRdbPredicates, String[] columns, ResultSetHook resultSetHook)
根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)并指定結(jié)果集。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
absRdbPredicates | 表示查詢條件。 |
resultSetHook | 指示要使用的結(jié)果集工廠。 |
columns | 表示要查詢的列。 如果值為 null,則查詢適用于所有列。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
ResultSet querySql(String sql, String[] sqlArgs)
執(zhí)行一條 SQL 語句。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
sql | 指示要執(zhí)行的 SQL 語句。 |
sqlArgs | 表示SQL語句中的參數(shù)值。 值是字符串。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
ResultSet querySqlWithHook(String sql, String[] sqlArgs, ResultSetHook resultSetHook)
執(zhí)行 SQL 語句并指定結(jié)果集。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
resultSetHook | 指示要使用的結(jié)果集工廠。 |
sql | 指示要執(zhí)行的 SQL 語句。 |
sqlArgs | 表示SQL語句中的參數(shù)值。 值是字符串。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
ResultSet queryByStep(AbsRdbPredicates absRdbPredicates, String[] columns)
根據(jù)指定條件查詢數(shù)據(jù)庫中的數(shù)據(jù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
absRdbPredicates | 表示查詢條件。 |
columns | 表示要查詢的列。 如果值為 null,則查詢適用于所有列。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象
ResultSet querySqlByStep(String sql, String[] sqlArgs)
執(zhí)行 SQL 語句并指定結(jié)果集。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
sql | 指示要執(zhí)行的 SQL 語句。 |
sqlArgs | 表示SQL語句中的參數(shù)值。 值是字符串。 |
返回:
如果操作成功,則返回一個(gè) ResultSet 對(duì)象;
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ā)此異常。 您必須自己處理此異常。 |
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ā)此異常。 您必須自己處理此異常。 |
Statement buildStatement(String sql)
將 SQL 語句編譯成可重用的語句。
一個(gè)語句不能被兩個(gè)線程同時(shí)使用。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
sql | 指示要編譯的 SQL 語句。 |
返回:
返回一個(gè) Statement 對(duì)象,它表示一個(gè)預(yù)編譯的 SQL 語句。
long count(String tableName, String whereClause, String[] whereArgs)
查詢RDB存儲(chǔ)中滿足指定條件的行數(shù)。
要獲得可執(zhí)行的SQL查詢語句,將表名和條件子句連接成字符串select count(*) from tableName whereClause,并將字符串中的問號(hào)(?)替換為whereArgs中的值。 這樣就可以調(diào)用Statement#executeAndGetLong執(zhí)行SQL查詢語句,獲取滿足指定條件的行數(shù)。 如果 whereClause 為 null 或?yàn)榭?,則返回表中的總行數(shù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
tableName | 表示數(shù)據(jù)庫表的名稱。 如果為 null 或?yàn)榭?,則拋出 IllegalArgumentException。 |
whereClause | 表示一個(gè)可選的條件子句,例如 id =? 和 name like?,其中id和name是數(shù)據(jù)庫表的列。 |
whereArgs | 指示包含用于替換 whereClause 中問號(hào) (?) 的值的數(shù)組。 |
返回:
返回 RDB 存儲(chǔ)中滿足指定條件的行數(shù)。
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ù)。
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ā)此異常。 |
ListPairString,String listAttached()
查詢附加數(shù)據(jù)庫列表。
返回:
返回附加數(shù)據(jù)庫的列表,包括它們的名稱和路徑。 主數(shù)據(jù)庫也包含在列表中。
void changeEncryptKey(byte[] newEncryptKey)
更改打開的加密數(shù)據(jù)庫的加密密鑰。
此方法僅適用于加密數(shù)據(jù)庫,不能用于將其更改為未加密數(shù)據(jù)庫。 在調(diào)用此方法之前,請(qǐng)確保數(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ù)庫的加密密鑰失敗,則拋出此異常。 |
int getVersion()
獲取數(shù)據(jù)庫版本。
返回:
返回?cái)?shù)據(jù)庫版本。
void setVersion(int version)
設(shè)置新數(shù)據(jù)庫的版本。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
version | 指示要設(shè)置的數(shù)據(jù)庫版本。 |
void beginTransaction()
以 EXCLUSIVE 模式開始事務(wù)。
endTransaction() 方法用于結(jié)束事務(wù)。 如果在事務(wù)結(jié)束時(shí)沒有使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則所有更改都會(huì)回滾。
void beginTransactionWithObserver(TransactionObserver transactionObserver)
使用偵聽器以獨(dú)占模式開始事務(wù)。
endTransaction() 方法用于結(jié)束事務(wù)。 如果在事務(wù)結(jié)束時(shí)沒有使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則所有更改都會(huì)回滾。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
transactionObserver | 提供可以在事務(wù)啟動(dòng)、提交或回滾時(shí)調(diào)用的回調(diào)方法。 |
void markAsCommit()
將當(dāng)前事務(wù)標(biāo)記為提交。
調(diào)用該方法后,在調(diào)用 endTransaction() 方法之前不要進(jìn)行任何操作。 無論是否發(fā)生錯(cuò)誤,事務(wù)都將被提交。
void endTransaction()
結(jié)束事務(wù)。
boolean isInTransaction()
檢查當(dāng)前線程是否正在進(jìn)行事務(wù)。
返回:
如果當(dāng)前線程正在進(jìn)行事務(wù),則返回 true; 否則返回 false。
void giveConnectionTemporarily(long milliseconds)
暫時(shí)斷開與數(shù)據(jù)庫的連接以允許其他線程使用數(shù)據(jù)庫。
該方法可用于提交當(dāng)前事務(wù)并暫時(shí)斷開與數(shù)據(jù)庫的連接,以便其他線程可以使用數(shù)據(jù)庫。 在指定的時(shí)間段后,將開始新的交易。 使用此方法時(shí),請(qǐng)確保當(dāng)前事務(wù)已啟動(dòng),并且該事務(wù)未使用 markAsCommit() 方法標(biāo)記為已提交; 否則,調(diào)用此方法將失敗。 在調(diào)用此方法之前所做的任何更改都無法回滾。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
milliseconds | 指示當(dāng)前連接從數(shù)據(jù)庫中斷的持續(xù)時(shí)間(毫秒)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果當(dāng)前線程不包含事務(wù)或包含嵌套事務(wù),或者在調(diào)用此方法之前已使用 markAsCommit() 方法將事務(wù)標(biāo)記為已提交,則拋出此異常。 |
boolean isHoldingConnection()
檢查此線程是否擁有數(shù)據(jù)庫連接。
返回:
如果此線程擁有數(shù)據(jù)庫連接,則返回 true; 否則返回 false。
boolean isOpen()
檢查數(shù)據(jù)庫是否打開。
返回:
如果數(shù)據(jù)庫已打開,則返回 true; 否則返回 false。
String getPath()
獲取數(shù)據(jù)庫文件的路徑。
返回:
返回?cái)?shù)據(jù)庫文件的路徑。
boolean isReadOnly()
檢查數(shù)據(jù)庫是否以只讀模式打開。
返回:
如果數(shù)據(jù)庫以只讀模式打開,則返回 true; 否則返回 false。
boolean isMemoryRdb()
檢查數(shù)據(jù)庫是否在內(nèi)存中打開。
返回:
如果數(shù)據(jù)庫在內(nèi)存中打開,則返回 true; 否則返回 false。
boolean checkIntegrity()
檢查主數(shù)據(jù)庫和附加數(shù)據(jù)庫的完整性。
此方法調(diào)用 SQLite 數(shù)據(jù)庫的完整性檢查命令。
返回:
如果數(shù)據(jù)庫是完整的,則返回 true; 否則返回 false。
void close()
關(guān)閉一個(gè) RDB。
不能再使用封閉的 RDB。
boolean backup(String destName)
以指定名稱備份數(shù)據(jù)庫。
生成的備份文件未加密。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
destName | 表示保存數(shù)據(jù)庫備份的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫入權(quán)限。 |
返回:
如果數(shù)據(jù)庫備份成功返回true; 否則返回 false。
boolean restore(String srcName)
從指定的未加密數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫。
調(diào)用該方法時(shí),會(huì)刪除原始數(shù)據(jù)并生成未加密的數(shù)據(jù)庫。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
srcName | 表示保存未加密數(shù)據(jù)庫文件的名稱。 確保您的應(yīng)用程序?qū)υ撁Q具有寫入權(quán)限。 |
返回:
如果數(shù)據(jù)庫恢復(fù)成功,則返回 true; 否則返回 false。
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。
boolean restore(String srcName, byte[] srcEncryptKey, byte[] destEncryptKey)
從指定的加密或未加密數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫。
當(dāng)被調(diào)用時(shí),此方法會(huì)刪除原始數(shù)據(jù)并生成一個(gè)加密或未加密的數(shù)據(jù)庫,由您的應(yīng)用程序定義。 如果 srcEncryptKey 和 destEncryptKey 都為 null,則此方法等效于 RdbStore#restore(String) 方法。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
srcName | 表示存儲(chǔ)源數(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。
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 從測試訂單中選擇 ; 在本地對(duì)數(shù)據(jù)進(jìn)行排序和查詢。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
locale | 指示要設(shè)置的語言環(huán)境。 |
String toString()
獲取數(shù)據(jù)庫存儲(chǔ)的描述。
覆蓋:
類 Object 中的 toString
返回:
返回 RdbStore 的描述。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: