Android -- Sqlite事务

这也是通过Android Juint来实现的。

基于上一次的工程继续,上一次工程传送门:《Android–Android Juint 与 Sqlitehttp://www.cnblogs.com/yydcdut/p/3790579.html

更新数据库                                                                                   

public PersonSQLite(Context context) {
        super(context, "person.db", null, 2);
        // TODO 自动生成的构造函数存根
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO 自动生成的方法存根
        System.out.println("数据库发生了变化!!");
        db.execSQL("alter table person add account varchar(20)");
    }

SQL处理类                                                                                

public long addMoney(String name ,String number,int money)
    {
        SQLiteDatabase db = sqlite.getWritableDatabase();
        //db.execSQL("insert into person (name,number) values (?,?)", new Object[]{name,number});
        ContentValues values = new ContentValues();
        values.put("name", name);
        values.put("number", number);
        values.put("account", money);
        long id = db.insert("person", null, values);
        db.close();
        return id;
    }

测试                                                                                          

//先添加数据
    public void testAddMoney()
    {
        PersonDao2 dao = new PersonDao2(getContext());
        dao.addMoney("wangwu", "123", 5000);
        dao.addMoney("zhangsan", "321", 2000);
    }
    //事务处理
    public void testTransaction()
    {
        PersonSQLite sqlite = new PersonSQLite(getContext());
        SQLiteDatabase db = sqlite.getWritableDatabase();
        db.beginTransaction();
        db.execSQL("update person set account=account-1000 where name = ?",new Object[]{"zhangsan"});
        db.execSQL("update person set account=account+1000 where name = ?",new Object[]{"wangwu"});
        db.endTransaction();
        db.close();
    }

我是天王盖地虎的分割线                                                                 

源代码:http://pan.baidu.com/s/1dD1Qx01

SQLite2.zip

转载请注明出处:http://www.cnblogs.com/yydcdut

Android -- Sqlite事务

时间: 2024-12-13 17:14:31

Android -- Sqlite事务的相关文章

Android中SQLite事务的操作

1.创建一个数据库帮助类. package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.

Android入门(十二)SQLite事务、升级数据库

原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可以先使用delete()方法将Book表中的数据删除, 然后再使用insert()方法将新的数据添加到表中.我们要保证的是,删除旧数据和添加新数据的操作必须一起完成,否则就还要继续保留原来的旧数据.                 Button replaceData = (Button) find

Android——SQLite数据库(二)升级数据库、增、删、改、查、事务

xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android

[转]android sqlite db-journal文件产生原因及说明

今天在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是google了sqlite的官方文档. 发现该文件的用途如下: 该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生,在事务结束时删除:当程序发生崩溃或者系统断电时该文件将留在磁盘上,以便下次程序运行时进行事务回滚. 但是我创建数据库时将事务结束了,同时程序也没有崩溃,为

Android SQLite总结[转载]

[转载] :http://blog.163.com/zqy216_2008/blog/static/4119371820119954812509/ 最近在做的项目涉及到了SQLite,大学时没有好好学习数据库,趁这次项目学习总结下. SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,可能只需要几百KB,这也是 Android 系统采用 SQLite 数据库的原因之一. 下面给出SQLite的数据类型. 一般数据采用的固定的静态数据类型,而SQLite采

android SQLite 批量插入数据慢的解决方案 (正对于不同的android api 版本)

SQLite,是一款轻型的数据库,被广泛的运用到很多嵌入式的产品中,因为占用的资源非常少,二其中的操作方式几乎和我们接触的数据库不多,甚至只有几百K的他自然会被需求者青睐,下面讲一下在这样的轻型数据库中怎么对他进行一些读写操作. 之前做选择联系人的时候出现如果一个手机里联系人超过2000的话,往数据库里面插入会非常耗时,不同的手机存储的条数不同,这个存储的数量和手机的内存有很大的关系,往往取决于手机内存,下面对于数据量大的情况来写一下sqlite的批量查询. SqLite 掺入数据有几种 第一种

Android sqlite db-journal文件的产生和原因

留心的人会发现在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边 生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是 google了sqlite的官方文档,发现该文件的用途如下: 该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生, 在事务结束时删除:当程序发生崩溃或者系统断电时该文件将留在磁盘上,以便下次程序运行 时进行事务回滚. 但是我创建数据库时将事务结束了,同时程

Android sqlite cursor的遍历

查询并获得了cursor对象后,用while(corsor.moveToNext()){}遍历,当corsor.moveToNext()方法调用,如果发现没有对象,会返回false public List<MMImage> getAll() { List<MMImage> list = new ArrayList<MMImage>(); Cursor c = null; try { c = database.query(TABLE, null, null, null,

【原创】android——SQLite实现简单的注册登陆(已经美化)

1,Main_activity的xmL配置 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_pa