第15天android:使用sqlite

http://www.verycd.com/topics/2915669/

17_传智播客Android视频教程_创建数据库与完成数据添删改查

 1.创建数据库

package com.wan;



import android.content.Context;

import android.database.DatabaseErrorHandler;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;



public class DBOpenHelper extends SQLiteOpenHelper {



    public DBOpenHelper(Context context) {

        //context,文件名,游标(使用默认的游标工厂),数据库的版本号

        super(context,"wan.db",null,1);//保存在 /data/data/<包民>/database/ 文件下

    }



    //数据库在第一次创建的时候调用的。创建完数据库文件后执行。这里一般是生成数据库表结构。

    @Override

    public void onCreate(SQLiteDatabase db) {

        db.execSQL("create table person(id integer primary key autoincorement,name varchar(20))");

    }



    //数据库文件版本号发生变化的时候执行的。一般是添加字段,取出字段。

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("Alter Table person Add phone varchar(12) null");

    }



}

这样就可以创建数据库和表了。

使用 sqlite expert professional 查看sqlite里面的数据和结构

数据库文件会在 /data/data/<包民>/database/

2.执行创建

@Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        DBOpenHelper db =new DBOpenHelper(getApplicationContext());

        db.getWritableDatabase();

        

    }

在调用

        SQLiteDatabase r=db.getWritableDatabase();

        SQLiteDatabase r1=db.getWritableDatabase();

 

执行两次得到的数据库是一个实例。

上面的方法,在数据库文件文件太大,就可能会报错。

 

3.更新、查询和分页

        //修改

        r1.execSQL("update person set name =? , phone =?", new String[] {

                "name", "891" });

        //查询

        Cursor cursor = r1.rawQuery("select * from person where id = ? ",

                new String[] { "128" });

        if (cursor.moveToFirst()) {

            int id = cursor.getInt(cursor.getColumnIndex("id"));

            String name =cursor.getString(cursor.getColumnIndex("name"));

        }

        //分页

        Cursor cursorPage = r1.rawQuery("select * from person limit 100,50",null);

18_传智播客Android视频教程_在SQLite中使用事务

1.事务使用

        //开始事务

        r1.beginTransaction();

        r1.execSQL("update person set xxx=100 where id =1");

        r1.execSQL("update person set yyy=100 where id =1");

        //结束事务

        r1.endTransaction();

        //事务的提交或回滚是 由事务标志决定的,默认情况下为false。为True的时候提交,否则回滚

 

 

第18集完。

你可能感兴趣的:(android)