1. 程式人生 > >Android資料庫事務操作

Android資料庫事務操作

Android中的SQLite可以很好的支援事務操作,所謂的事務,就是指作為單個邏輯工作單元執行的一系列操作,要麼完整地執行,要麼完全不執行,不能執行某些操作,而不執行其他操作。打個比方,銀行的轉賬操作,A轉給B1000塊錢,則A的賬戶中要扣除1000塊,B的賬戶中要增加1000塊,這兩個行為要麼都執行,要麼都不執行,不能只執行其中一個操作。

使用Android的SQLite的事務也很簡單,開始事務的時候需要呼叫beginTransaction();執行完一系列的資料庫操作後,需要呼叫setTransactionSuccessful();最後需要呼叫endTransaction();這樣就算成功的執行了依次資料庫事務了,具體程式碼看下面:

假設有一張person表,裡面有三個欄位:id和name,balance,對balance執行更新操作,用資料庫事務來完成:

public void testTransaction() {
             PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(getContext());
             SQLiteDatabase db = helper.getWritableDatabase();
             if (db.isOpen()) {
                   try {
                          db.beginTransaction();// 開啟事務
                          // 減去1000
                          db.execSQL("update person set balance = balance - 1000 where name = 'zhangsan'");
                          // int result =10/0;
                          // 加上1000
                          db.execSQL("update person set balance = balance + 1000 where name = 'lisi'");
                          db.setTransactionSuccessful();// 標記事務成功
                   } catch (SQLException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                   } finally {
                          db.endTransaction();
                   }
                   db.close();
             }
      }

相關推薦

Android資料庫事務操作

Android中的SQLite可以很好的支援事務操作,所謂的事務,就是指作為單個邏輯工作單元執行的一系列操作,要麼完整地執行,要麼完全不執行,不能執行某些操作,而不執行其他操作。打個比方,銀行的轉賬操作,A轉給B1000塊錢,則A的賬戶中要扣除1000塊,B的賬戶中要增加10

android 資料庫操作

開啟資料庫: sqlite3 /data/data/com.android.providers.settings/databases/settings.db 資料庫的操作(增刪改查) 增加: INSERT INTO system VALUES(99,'http_proxy','1

Android Transaction事務操作

1,事務:要麼程式碼執行都成功,要麼程式碼執行都失敗 2,事務的標準寫法: 事務的標準寫法: db.beginTransaction(); try { ... db.setTransactionSuccessful(); } finally { db.endT

Qt資料庫事務操作

連線 QSqlDatabase db; connection(QString const& connectionName) {

Android資料庫併發操作解決思路

資料庫作為Android資料儲存重要的一部分,相信很多應用中都會用到,面試也會遇到很多關於資料庫的問題。實際開發中我沒遇到過特別複雜的資料庫使用,所以對這一塊的優化沒怎麼研究過。 以前面試的時候被問到過這麼一個問題: 面試官:資料庫併發訪問怎麼處理? 我:

Android五種資料儲存方式之SQLite資料庫儲存 載入SD卡資料庫 sql操作 事務 防止SQL注入

資料庫 前言 資料庫儲存 資料庫建立 內建儲存資料庫 外接儲存資料庫 編寫DAO 插入操作 更新操作 刪除操作 查詢操作

QT操作Oracle資料庫(事務、儲存過程)

QT操作Oracle資料庫可以使用QODBC、QOCI兩種驅動,這裡使用QODBC驅動。在使用QOCI驅動操作oracle時,事務不能回滾,可能是我編譯的QOCI驅動有問題,但是暫時沒有找到原因。 #ifndef QTTEST_H #define QTTEST_H #include <

android 資料庫的基本操作

MainActivity.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

MySQL資料庫簡單操作事務和索引

分享MySQL資料庫簡單操作及事務和索引的筆記,希望對大家有所幫助。 MySQL資料庫操作:[[email protected] ~]# mysql -u root -p //進入資料庫中 mysql> show databases; //檢視所有資料庫 mysql> use my

pycharm 連線redis資料庫進行事務操作

import redis pool = redis.ConnectionPool(db=1, decode_responses=True) r = redis.Redis(connection_pool=pool) # 建立管道 pipe = r.pipeline()

順序性,一致性,原子性:現代多核體系結構與原子操作·CAS與自旋鎖·自旋鎖與併發程式設計的原語·語句原子性和程式設計邏輯的原子性·行鎖與資料庫事務原子性·binlog與資料庫

順序性: 亂序執行·邏輯正確性  現代體系結構的每一個核的指令流水是亂序執行的,但是他能夠保證其執行效果正確,即等同於順序執行。 不過這帶來的問題是對於一個核在主觀上它的執行狀態最終保證正確,但是對於別的核,如果在某一箇中間時間點需要觀察它呢?看到的是一個不正確的

Android studio中檢視Device File Explorer,並使用sqlit3對資料庫進行操作

首先確保手機與電腦進行連線,手機屬於開發者模式。開啟Android studio找到view,點選view找到“Tool Windows ”,將滑鼠指向“Tool Windows”後找到"Device File Explorer".點選後就可以進行檢視。若想對其中的sqlit

使用spring的TransactionTemplate操作資料庫事務

場景:使用spring的TransactionTemplate操作資料庫事務 1.事務操作過程 /**事務操作過程*/ @SuppressWarnings("unchecked") public static void doTransaction(){ /**1.建立事

Android小技巧(二):為ContentProvider新增資料庫事務支援

介紹:資料庫事務是由一組資料庫操作序列組成,事務作為一個整體被執行。 事務的原子性:包含在其中的對資料庫的操作序列最終要麼全部執行,要麼全部不執行。當全部執行時,事務對資料庫的修改將生效;當全部不執行時,資料庫維持原有的狀態,不會被修改。 問題:最近在做一個從sdcard

Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作

Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作 SQLiteOpenHelper 是 Android平臺提供給我們一個數據庫輔助類來建立或開啟資料庫 onCreate(SQLiteDatabase db) : 當資料庫被首次建立時執行該方法,一般將建立

Android資料庫兩種操作方式介紹: SQLite與ORMLite

本文主要介紹關係型資料庫 SQLite 和物件關係對映工具 ORMLite ,兩種方式都可以滿足Android多資料持久化儲存的需求。 1. SQLite 簡介: SQLite是一款Android內建的輕量級的關係型資料庫,它的運算速度非常快,佔用資源少,通常只需要幾

Android Sqlite資料庫常用操作

很久前也寫過一篇Android資料庫操作相關內容。在正式專案中,我們通常會使用資料庫開源框架如GreenDao來對資料庫進行操作。 感覺很久沒有直接使用Sql語句了,這幾天有時間,就溫習了下相關知識。 SQLite,是一款輕型的資料庫,是遵守ACID的關

android資料庫操作(二) 某實體類的DAO操作

package com.iceboard.tccme.dao; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.c

MySQL資料庫事務基本操作

這篇日誌是自己學習了MySQL資料庫的事務之後,總結的一點心得體會。都是一些非常基礎的知識點。如能幫助諸位初學者,那真是我的榮幸。 資料庫的事務,很多的部落格也都有了詳細的介紹。最基本的事務特性啊(ACID)這裡就不再贅述。 首先,如果想要開啟MySQL資料庫的

Android】GreenDao操作外部DB資料庫檔案

1.背景 所謂外部資料庫檔案此處指的就是一個在外部單獨建立的db檔案,假設有這麼一個場景,我們專案中有一些本地資料,不需要介面去獲取的(不需要進行網路操作),寫死的資料,比如全國各個省各個市的一些基本