Android SQLite事务操作

来源:互联网 发布:有限元软件在线培训 编辑:程序博客网 时间:2024/05/16 05:11

Android SQLite事务操作

1. 新建DBOpenHelper继承自SQLiteOpenHelper类:
public class DBOpenHelper extends SQLiteOpenHelper {    private final static String DATABASENAME = "itcast.db";    private final static int DATABASEVERSION = 2;    public DBOpenHelper(Context context) {        super(context, DATABASENAME, null, DATABASEVERSION);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        Log.i("old", oldVersion +"");        Log.i("new", newVersion + "");        db.execSQL("ALTER TABLE person ADD amount integer");    }}
2.新建对应数据库中表的字段的JavaBean数据类:
public class Person {    private Integer id;    private String name;    private Integer amount;    public Person() {    }        public Person(Integer id, String name, Integer amount) {        super();        this.id = id;        this.name = name;        this.amount = amount;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAmount() {        return amount;    }    public void setAmount(Integer amount) {        this.amount = amount;    }    @Override    public String toString() {        return "Person [id=" + id + ", name=" + name + ", amount=" + amount                + "]";    }}
3. 新建事务操作方法:
public void payment() {        SQLiteDatabase db = dbHelper.getWritableDatabase();        db.beginTransaction();        try {            db.execSQL("update person set amount=amount-10 where personid=?", new Object[]{1});            db.execSQL("update person set amount=amount+10 where personid=?", new Object[]{2});            db.setTransactionSuccessful();        } finally {            db.endTransaction();        }    }
4.新建单元测试类对业务类中的方法进行测试:
public void testpayment() throws Exception {        DBService dbService = new DBService(this.getContext());        dbService.payment();    }
0 0
原创粉丝点击