Java Code Examples for android.database.sqlite.SQLiteDatabase#setTransactionSuccessful()
The following examples show how to use
android.database.sqlite.SQLiteDatabase#setTransactionSuccessful() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: PaycheckFragment.java From budget-envelopes with GNU General Public License v3.0 | 6 votes |
@Override public void ok() { SparseArray<Long> deposites = mEnvelopes.getDeposites(); String description = mDescription.getText().toString(); String frequency = null; int l = deposites.size(); SQLiteDatabase db = (new EnvelopesOpenHelper(getActivity())).getWritableDatabase(); db.beginTransaction(); try { ContentValues values = new ContentValues(); for (int i = 0; i != l; ++i) { int id = deposites.keyAt(i); long centsDeposited = deposites.valueAt(i); EnvelopesOpenHelper.deposite(db, id, centsDeposited, description, frequency); values.put("lastPaycheckCents", centsDeposited); db.update("envelopes", values, "_id = ?", new String[] { Integer.toString(id) }); } db.setTransactionSuccessful(); getActivity().getContentResolver().notifyChange(EnvelopesOpenHelper.URI, null); } finally { db.endTransaction(); db.close(); } }
Example 2
Source File: IntegerInsertsRawTransactionCase.java From SQLite-Performance with The Unlicense | 6 votes |
@Override public Metrics runCase() { mDbHelper = new DbHelper(App.getInstance(), IntegerInsertsRawTransactionCase.class.getSimpleName()); Metrics result = new Metrics(getClass().getSimpleName()+" ("+mInsertions+" insertions)", mTestSizeIndex); SQLiteDatabase db = mDbHelper.getWritableDatabase(); result.started(); db.beginTransaction(); Object[] values = new Object[1]; for (int i = 0; i < mInsertions; i++) { values[0] = mRandom.nextInt(); db.execSQL("INSERT INTO inserts_1 (val) VALUES (?)", values); } db.setTransactionSuccessful(); db.endTransaction(); result.finished(); return result; }
Example 3
Source File: MeasurementsDatabase.java From TowerCollector with Mozilla Public License 2.0 | 6 votes |
public int deleteAllMeasurements() { Timber.d("deleteAllMeasurements(): Deleting all measurements"); SQLiteDatabase db = helper.getWritableDatabase(); db.beginTransaction(); int deletedCellSignals = 0; try { deletedCellSignals = db.delete(CellSignalsTable.TABLE_NAME, "1", null); int deletedMeasurements = db.delete(MeasurementsTable.TABLE_NAME, "1", null); db.setTransactionSuccessful(); Timber.d("deleteAllMeasurements(): Deleted %s cell signals, %s measurements", deletedCellSignals, deletedMeasurements); } finally { invalidateCache(); db.endTransaction(); } return deletedCellSignals; }
Example 4
Source File: DataProvider.java From AndroidRecyclerViewDemo with Apache License 2.0 | 6 votes |
@Override public Uri insert(Uri uri, ContentValues values) { synchronized (obj) { SQLiteDatabase db = getDBHelper().getWritableDatabase(); long rowId = 0; db.beginTransaction(); try { rowId = db.insert(matchTable(uri), null, values); db.setTransactionSuccessful(); } catch (Exception e) { e.printStackTrace(); } finally { db.endTransaction(); } if (rowId > 0) { Uri returnUri = ContentUris.withAppendedId(uri, rowId); getContext().getContentResolver().notifyChange(uri, null); return returnUri; } throw new SQLException("Failed to insert row into " + uri); } }
Example 5
Source File: SugarRecord.java From ApkTrack with GNU General Public License v3.0 | 6 votes |
@SuppressWarnings("deprecation") public static <T> void saveInTx(Collection<T> objects) { SQLiteDatabase sqLiteDatabase = getSugarDataBase(); try { sqLiteDatabase.beginTransaction(); sqLiteDatabase.setLockingEnabled(false); for (T object: objects) { save(object); } sqLiteDatabase.setTransactionSuccessful(); } catch (Exception e) { Log.i(SUGAR, "Error in saving in transaction " + e.getMessage()); } finally { sqLiteDatabase.endTransaction(); sqLiteDatabase.setLockingEnabled(true); } }
Example 6
Source File: DatabaseHelper.java From clear-todolist with GNU General Public License v3.0 | 6 votes |
private void executeCreateIndex(SQLiteDatabase db) { db.beginTransaction(); try { for (TableInfo tableInfo : Cache.getTableInfos()) { String[] definitions = SQLiteUtils.createIndexDefinition(tableInfo); for (String definition : definitions) { db.execSQL(definition); } } db.setTransactionSuccessful(); } finally { db.endTransaction(); } }
Example 7
Source File: AssignmentsStore.java From OmniList with GNU Affero General Public License v3.0 | 6 votes |
public synchronized void deleteAssignments(Category category) { SQLiteDatabase database = getWritableDatabase(); database.beginTransaction(); try { database.execSQL(" UPDATE " + tableName + " SET " + AssignmentSchema.STATUS + " = " + Status.DELETED.id + ", " + AssignmentSchema.LAST_MODIFIED_TIME + " = ? " + " WHERE " + AssignmentSchema.CATEGORY_CODE + " = " + category.getCode() + " AND " + AssignmentSchema.USER_ID + " = " + userId, new String[]{String.valueOf(System.currentTimeMillis())}); database.setTransactionSuccessful(); } finally { database.endTransaction(); closeDatabase(database); } }
Example 8
Source File: BaseDao.java From YoDao with Apache License 2.0 | 6 votes |
@Override public int delete(List<T> entities) { int count = 0; SQLiteDatabase db = getDb(true); db.beginTransaction(); try { for (T item : entities) { count += delete(item); } db.setTransactionSuccessful(); } catch (Throwable e) { e.printStackTrace(); } finally { db.endTransaction(); } return count; }
Example 9
Source File: DatabaseHelper.java From NetGuard with GNU General Public License v3.0 | 6 votes |
public void setAccess(long id, int block) { lock.writeLock().lock(); try { SQLiteDatabase db = this.getWritableDatabase(); db.beginTransactionNonExclusive(); try { ContentValues cv = new ContentValues(); cv.put("block", block); cv.put("allowed", -1); if (db.update("access", cv, "ID = ?", new String[]{Long.toString(id)}) != 1) Log.e(TAG, "Set access failed"); db.setTransactionSuccessful(); } finally { db.endTransaction(); } } finally { lock.writeLock().unlock(); } notifyAccessChanged(); }
Example 10
Source File: DatabaseFactory.java From bcm-android with GNU General Public License v3.0 | 5 votes |
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.beginTransaction(); doLegacyMigration(db, oldVersion, newVersion); doAttachmentMigrationTo47(db, oldVersion, newVersion); doSMSMigrationTo49(db, oldVersion, newVersion); doRecipientMigrationTo52(db, oldVersion, newVersion); doRecipientMigrationTo57(db, oldVersion, newVersion); doRecipientMigrationTo58(db, oldVersion, newVersion); db.setTransactionSuccessful(); db.endTransaction(); }
Example 11
Source File: CacheFileMetadataIndex.java From MediaSDK with Apache License 2.0 | 5 votes |
/** * Initializes the index for the given cache UID. * * <p>This method may be slow and shouldn't normally be called on the main thread. * * @param uid The cache UID. * @throws DatabaseIOException If an error occurs initializing the index. */ @WorkerThread public void initialize(long uid) throws DatabaseIOException { try { String hexUid = Long.toHexString(uid); tableName = getTableName(hexUid); SQLiteDatabase readableDatabase = databaseProvider.getReadableDatabase(); int version = VersionTable.getVersion( readableDatabase, VersionTable.FEATURE_CACHE_FILE_METADATA, hexUid); if (version != TABLE_VERSION) { SQLiteDatabase writableDatabase = databaseProvider.getWritableDatabase(); writableDatabase.beginTransactionNonExclusive(); try { VersionTable.setVersion( writableDatabase, VersionTable.FEATURE_CACHE_FILE_METADATA, hexUid, TABLE_VERSION); dropTable(writableDatabase, tableName); writableDatabase.execSQL("CREATE TABLE " + tableName + " " + TABLE_SCHEMA); writableDatabase.setTransactionSuccessful(); } finally { writableDatabase.endTransaction(); } } } catch (SQLException e) { throw new DatabaseIOException(e); } }
Example 12
Source File: KcaDBHelper.java From kcanotify_h5-master with GNU General Public License v3.0 | 5 votes |
public void putBulkItemValue(JsonArray api_data) { SQLiteDatabase db = null; SQLiteStatement statement; try { if (api_data.size() > 0) { db = getWritableDatabase(); db.delete(slotitem_table_name, null, null); db.beginTransaction(); statement = db.compileStatement("INSERT INTO ".concat(slotitem_table_name).concat(" (KEY, KCID, VALUE) values (?, ?, ?)")); for (JsonElement item: api_data) { int column = 1; JsonObject item_data = item.getAsJsonObject(); String api_id = item_data.get("api_id").getAsString(); String api_slotitem_id = item_data.get("api_slotitem_id").getAsString(); statement.bindString(column++, api_id); statement.bindString(column++, api_slotitem_id); statement.bindString(column++, item_data.toString()); statement.execute(); } statement.close(); db.setTransactionSuccessful(); } } catch (RuntimeException e) { e.printStackTrace(); } finally { if (db != null) { db.endTransaction(); } } }
Example 13
Source File: WeatherProvider.java From android-dev-challenge with Apache License 2.0 | 5 votes |
/** * Handles requests to insert a set of new rows. In Sunshine, we are only going to be * inserting multiple rows of data at a time from a weather forecast. There is no use case * for inserting a single row of data into our ContentProvider, and so we are only going to * implement bulkInsert. In a normal ContentProvider's implementation, you will probably want * to provide proper functionality for the insert method as well. * * @param uri The content:// URI of the insertion request. * @param values An array of sets of column_name/value pairs to add to the database. * This must not be {@code null}. * * @return The number of values that were inserted. */ @Override public int bulkInsert(@NonNull Uri uri, @NonNull ContentValues[] values) { final SQLiteDatabase db = mOpenHelper.getWritableDatabase(); switch (sUriMatcher.match(uri)) { case CODE_WEATHER: db.beginTransaction(); int rowsInserted = 0; try { for (ContentValues value : values) { long weatherDate = value.getAsLong(WeatherContract.WeatherEntry.COLUMN_DATE); if (!SunshineDateUtils.isDateNormalized(weatherDate)) { throw new IllegalArgumentException("Date must be normalized to insert"); } long _id = db.insert(WeatherContract.WeatherEntry.TABLE_NAME, null, value); if (_id != -1) { rowsInserted++; } } db.setTransactionSuccessful(); } finally { db.endTransaction(); } if (rowsInserted > 0) { getContext().getContentResolver().notifyChange(uri, null); } return rowsInserted; default: return super.bulkInsert(uri, values); } }
Example 14
Source File: DaoImpl.java From Cangol-appcore with Apache License 2.0 | 5 votes |
@Override public int deleteAll() throws SQLException { final SQLiteDatabase db = mDatabaseHelper.getWritableDatabase(); int result = 0; try { db.beginTransaction(); result = db.delete(mTableName, null, null); db.setTransactionSuccessful(); } catch (Exception e) { throw new SQLException(mTableName + " error=" + e, e); } finally { db.endTransaction(); } return result; }
Example 15
Source File: DatabaseBackend.java From Pix-Art-Messenger with GNU General Public License v3.0 | 5 votes |
public void deleteMessageInConversation(Message message) { long start = SystemClock.elapsedRealtime(); final SQLiteDatabase db = this.getWritableDatabase(); db.beginTransaction(); ContentValues values = new ContentValues(); values.put(Message.DELETED, "1"); String[] args = {message.getUuid()}; int rows = db.update("messages", values, "uuid =?", args); db.setTransactionSuccessful(); db.endTransaction(); Log.d(Config.LOGTAG, "deleted " + rows + " message in " + (SystemClock.elapsedRealtime() - start) + "ms"); }
Example 16
Source File: CachedContentIndex.java From Telegram with GNU General Public License v2.0 | 4 votes |
@Override public void load( HashMap<String, CachedContent> content, SparseArray<@NullableType String> idToKey) throws IOException { Assertions.checkState(pendingUpdates.size() == 0); try { int version = VersionTable.getVersion( databaseProvider.getReadableDatabase(), VersionTable.FEATURE_CACHE_CONTENT_METADATA, hexUid); if (version != TABLE_VERSION) { SQLiteDatabase writableDatabase = databaseProvider.getWritableDatabase(); writableDatabase.beginTransaction(); try { initializeTable(writableDatabase); writableDatabase.setTransactionSuccessful(); } finally { writableDatabase.endTransaction(); } } try (Cursor cursor = getCursor()) { while (cursor.moveToNext()) { int id = cursor.getInt(COLUMN_INDEX_ID); String key = cursor.getString(COLUMN_INDEX_KEY); byte[] metadataBytes = cursor.getBlob(COLUMN_INDEX_METADATA); ByteArrayInputStream inputStream = new ByteArrayInputStream(metadataBytes); DataInputStream input = new DataInputStream(inputStream); DefaultContentMetadata metadata = readContentMetadata(input); CachedContent cachedContent = new CachedContent(id, key, metadata); content.put(cachedContent.key, cachedContent); idToKey.put(cachedContent.id, cachedContent.key); } } } catch (SQLiteException e) { content.clear(); idToKey.clear(); throw new DatabaseIOException(e); } }
Example 17
Source File: JobStorage.java From android-job with Apache License 2.0 | 4 votes |
@SuppressWarnings("deprecation") private void upgradeFrom4To5(SQLiteDatabase db) { // remove "persisted" column and rename "isTransient" to "started", add "transient" column for O try { db.beginTransaction(); String newTable = JOB_TABLE_NAME + "_new"; db.execSQL("create table " + newTable + " (" + COLUMN_ID + " integer primary key, " + COLUMN_TAG + " text not null, " + COLUMN_START_MS + " integer, " + COLUMN_END_MS + " integer, " + COLUMN_BACKOFF_MS + " integer, " + COLUMN_BACKOFF_POLICY + " text not null, " + COLUMN_INTERVAL_MS + " integer, " + COLUMN_REQUIREMENTS_ENFORCED + " integer, " + COLUMN_REQUIRES_CHARGING + " integer, " + COLUMN_REQUIRES_DEVICE_IDLE + " integer, " + COLUMN_EXACT + " integer, " + COLUMN_NETWORK_TYPE + " text not null, " + COLUMN_EXTRAS + " text, " + COLUMN_NUM_FAILURES + " integer, " + COLUMN_SCHEDULED_AT + " integer, " + COLUMN_STARTED + " integer, " + COLUMN_FLEX_MS + " integer, " + COLUMN_FLEX_SUPPORT + " integer, " + COLUMN_LAST_RUN + " integer);"); db.execSQL("INSERT INTO " + newTable + " SELECT " + COLUMN_ID + "," + COLUMN_TAG + "," + COLUMN_START_MS + "," + COLUMN_END_MS + "," + COLUMN_BACKOFF_MS + "," + COLUMN_BACKOFF_POLICY + "," + COLUMN_INTERVAL_MS + "," + COLUMN_REQUIREMENTS_ENFORCED + "," + COLUMN_REQUIRES_CHARGING + "," + COLUMN_REQUIRES_DEVICE_IDLE + "," + COLUMN_EXACT + "," + COLUMN_NETWORK_TYPE + "," + COLUMN_EXTRAS + "," + COLUMN_NUM_FAILURES + "," + COLUMN_SCHEDULED_AT + "," + COLUMN_TRANSIENT_OLD + "," + COLUMN_FLEX_MS + "," + COLUMN_FLEX_SUPPORT + "," + COLUMN_LAST_RUN + " FROM " + JOB_TABLE_NAME); db.execSQL("DROP TABLE " + JOB_TABLE_NAME); db.execSQL("ALTER TABLE " + newTable + " RENAME TO " + JOB_TABLE_NAME); db.execSQL("alter table " + JOB_TABLE_NAME + " add column " + COLUMN_TRANSIENT + " integer;"); db.setTransactionSuccessful(); } finally { db.endTransaction(); } }
Example 18
Source File: WoodminProvider.java From Woodmin with Apache License 2.0 | 4 votes |
@Override public int update(Uri uri, ContentValues contentValues, String selection, String[] selectionArgs) { final SQLiteDatabase db = mOpenHelper.getWritableDatabase(); final int match = sUriMatcher.match(uri); int rowsUpdated; switch (match) { case SHOP: db.beginTransaction(); try { rowsUpdated = db.update(WoodminContract.ShopEntry.TABLE_NAME, contentValues, selection, selectionArgs); db.setTransactionSuccessful(); } finally { db.endTransaction(); } break; case ORDER: db.beginTransaction(); try { rowsUpdated = db.update(WoodminContract.OrdersEntry.TABLE_NAME, contentValues, selection, selectionArgs); db.setTransactionSuccessful(); } finally { db.endTransaction(); } break; case PRODUCT: db.beginTransaction(); try { rowsUpdated = db.update(WoodminContract.ProductEntry.TABLE_NAME, contentValues, selection, selectionArgs); db.setTransactionSuccessful(); } finally { db.endTransaction(); } break; case CONSUMER: db.beginTransaction(); try { rowsUpdated = db.update(WoodminContract.CustomerEntry.TABLE_NAME, contentValues, selection, selectionArgs); db.setTransactionSuccessful(); } finally { db.endTransaction(); } break; default: throw new UnsupportedOperationException("Unknown uri: " + uri); } //getContext().getContentResolver().notifyChange(uri, null, false); return rowsUpdated; }
Example 19
Source File: DBHelper.java From fdroidclient with GNU General Public License v3.0 | 4 votes |
/** * Ordinarily, if a column is no longer used, we'd err on the side of just leaving it in the * database but stop referring to it in Java. However because it forms part of the primary * key of this table, we need to change the primary key to something which _is_ used. Thus, * this function will rename the old table, create the new table, and then insert all of the * data from the old into the new with the new primary key. */ private void removeApkPackageNameColumn(SQLiteDatabase db, int oldVersion) { if (oldVersion < 59) { Utils.debugLog(TAG, "Changing primary key of " + ApkTable.NAME + " from package + vercode to app + vercode + repo"); db.beginTransaction(); try { // http://stackoverflow.com/questions/805363/how-do-i-rename-a-column-in-a-sqlite-database-table#805508 String tempTableName = ApkTable.NAME + "__temp__"; db.execSQL("ALTER TABLE " + ApkTable.NAME + " RENAME TO " + tempTableName + ";"); String createTableDdl = "CREATE TABLE " + ApkTable.NAME + " ( " + ApkTable.Cols.APP_ID + " integer not null, " + ApkTable.Cols.VERSION_NAME + " text not null, " + ApkTable.Cols.REPO_ID + " integer not null, " + ApkTable.Cols.HASH + " text not null, " + ApkTable.Cols.VERSION_CODE + " int not null," + ApkTable.Cols.NAME + " text not null, " + ApkTable.Cols.SIZE + " int not null, " + ApkTable.Cols.SIGNATURE + " string, " + ApkTable.Cols.SOURCE_NAME + " string, " + ApkTable.Cols.MIN_SDK_VERSION + " integer, " + ApkTable.Cols.TARGET_SDK_VERSION + " integer, " + ApkTable.Cols.MAX_SDK_VERSION + " integer, " + ApkTable.Cols.REQUESTED_PERMISSIONS + " string, " + ApkTable.Cols.FEATURES + " string, " + ApkTable.Cols.NATIVE_CODE + " string, " + ApkTable.Cols.HASH_TYPE + " string, " + ApkTable.Cols.ADDED_DATE + " string, " + ApkTable.Cols.IS_COMPATIBLE + " int not null, " + ApkTable.Cols.INCOMPATIBLE_REASONS + " text, " + "PRIMARY KEY (" + ApkTable.Cols.APP_ID + ", " + ApkTable.Cols.VERSION_CODE + ", " + ApkTable.Cols.REPO_ID + ")" + ");"; db.execSQL(createTableDdl); String nonPackageNameFields = TextUtils.join(", ", new String[]{ ApkTable.Cols.APP_ID, ApkTable.Cols.VERSION_NAME, ApkTable.Cols.REPO_ID, ApkTable.Cols.HASH, ApkTable.Cols.VERSION_CODE, ApkTable.Cols.NAME, ApkTable.Cols.SIZE, ApkTable.Cols.SIGNATURE, ApkTable.Cols.SOURCE_NAME, ApkTable.Cols.MIN_SDK_VERSION, ApkTable.Cols.TARGET_SDK_VERSION, ApkTable.Cols.MAX_SDK_VERSION, ApkTable.Cols.REQUESTED_PERMISSIONS, ApkTable.Cols.FEATURES, ApkTable.Cols.NATIVE_CODE, ApkTable.Cols.HASH_TYPE, ApkTable.Cols.ADDED_DATE, ApkTable.Cols.IS_COMPATIBLE, ApkTable.Cols.INCOMPATIBLE_REASONS, }); String insertSql = "INSERT INTO " + ApkTable.NAME + "(" + nonPackageNameFields + " ) " + "SELECT " + nonPackageNameFields + " FROM " + tempTableName + ";"; db.execSQL(insertSql); db.execSQL("DROP TABLE " + tempTableName + ";"); // Now that the old table has been dropped, we can create indexes again. // Attempting this before dropping the old table will not work, because the // indexes exist on the _old_ table, and so are unable to be added (with the // same name) to the _new_ table. ensureIndexes(db); db.setTransactionSuccessful(); } finally { db.endTransaction(); } } }
Example 20
Source File: DatabaseHelper.java From android-viewer-for-khan-academy with GNU General Public License v3.0 | 4 votes |
@Override public void onUpgrade(final SQLiteDatabase database, final ConnectionSource connectionSource, final int oldVersion, final int newVersion) { if (oldVersion < 111) { // Create new Caption table. try { TableUtils.createTableIfNotExists(connectionSource, Caption.class); } catch (SQLException e) { e.printStackTrace(); } } if (oldVersion < 114) { // Could instead create an ORMLite pojo for topicvideo and do this with TableUtils. database.execSQL("CREATE TABLE IF NOT EXISTS `topicvideo` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `topic_id` VARCHAR, `video_id` VARCHAR )"); } if (newVersion >= 111) { // Played with the idea of putting this all into an AsyncTask, but // 1) Can crash the app. For example, in 114 upgrade we add topicvideo table; if it doesn't exist and user reaches a video list, we // crash. Worse, if we do crash here the app is broken. Db version has been bumped, so this code doesn't get another chance to run. // 2) To prevent crash, tried showing AlertDialog. The context we get here is "not an application context", so trying to show a window // (or sometimes a toast) crashes us with a null window token error. I dug deep to try to pass in a useful context with no luck. // See branch temp/pass_context_to_helper. // 3) It doesn't take very long (truncate / reload full video and topic tables is just a few seconds, not long enough for ANR on Fire HD) new DatabaseImporter(context).import_(DATABASE_RESOURCE_ID, "temp"); SQLiteDatabase tempDb = new TempHelper(context).getReadableDatabase(); if (oldVersion < 111) { do111Upgrade(database, tempDb); } if (oldVersion < 114 && newVersion >= 114) { // add topicvideo table do114Upgrade(database, tempDb); } if (oldVersion < 120 && newVersion >= 120) { // add video.dlm_id column do120Upgrade(database, tempDb); } tempDb.close(); context.deleteDatabase(TempHelper.DB_NAME); // Update download status from storage. This recovers any lost during library updates in 1.1.3. database.beginTransaction(); try { for (String yid : getAllDownloadedYoutubeIds()) { database.execSQL("update video set download_status=? where youtube_id=?", new Object[] {Video.DL_STATUS_COMPLETE, yid}); } database.setTransactionSuccessful(); } finally { database.endTransaction(); } } }