android关于sqlite数据库的使用

一、SQLite的介绍:      
     SQLite,是一款轻型的数据库,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低。可以说对于android设备而言,使用sqlite这种关系型数据库是再合理不过了。对SQLite的使用,主要了解如何完成对数据的增删改查等操作。

二、使用SQLite数据库:       
     第一步:创建SQLiteOpenHelper对象。
     使用SQLite,首先要了解SQLiteOpenHelper,通过这个类的对象,我们可以获得对数据进行增删改查的SQLiteDatabase对象
     具体做法,创建一个类并且继承SQLiteOpenHelper,然后必须重写其构造方法,onCreate()方法和onUpdate()方法。
          onCreate()是第一次数据库创建时调用的。
          onUpdate()是在数据库版本号改变调用的。
     得到SQLiteOpenHelper对象后,可以通过这个对象的getWritableDatabase()和getReadableDatabase()这两个方法来或得SQLiteDatabase的对象。这两个方法分别用于取得可写的SQLiteDatabase对象与可读的SQLiteDatabase对象。

public class OpenHelper extends SQLiteOpenHelper {
//数据库的版本号
private static final int VERSION = 1;
//数据库的构造方法
/**
 * @param name     数据库名
 * @param version    数据库版本号
 */
public OpenHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
public OpenHelper(Context context, String name){
this(context,name,VERSION);
}
public OpenHelper(Context context, String name, int version) {
this(context,name,null,version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//当第一次创建数据库时建立person表。包含persionid和name两个字段。
db.execSQL("create table person (personid integer primary key autoincrement,name varchar(20))");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//当数据库版本号改变时,更新person表,增加字段age。
db.execSQL("alter table person add age integer");
}

}

      第二步:完成对activity的布局。
     布局文件内容如下:
 < LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
    xmlns:tools= "http://schemas.android.com/tools"
    android:layout_width= "match_parent"
    android:layout_height= "match_parent"
    android:orientation= "vertical"
    tools:context= ".MainActivity" >

    <Button
        android:layout_width= "fill_parent"
        android:layout_height= "wrap_content"
        android:onClick= "doCreate"
        android:text= "@string/oncreate" />

    <Button
        android:layout_width= "fill_parent"
        android:layout_height= "wrap_content"
        android:onClick= "doUpdate"
        android:text= "@string/onupdate" />

    <Button
        android:layout_width= "fill_parent"
        android:layout_height= "wrap_content"
        android:onClick= "insert"
        android:text= "@string/insert" />

    <Button
        android:layout_width= "fill_parent"
        android:layout_height= "wrap_content"
        android:onClick= "query"
        android:text= "@string/query" />

    <Button
        android:layout_width= "fill_parent"
        android:layout_height= "wrap_content"
        android:onClick= "delete"
        android:text= "@string/delete" />

    <Button
        android:layout_width= "fill_parent"
        android:layout_height= "wrap_content"
        android:onClick= "update"
        android:text= "@string/update" />

</ LinearLayout>

  第三步:完成对数据库的建表及增删改查等操作。
     创建activity,为每个按钮完成相应的操作。
     1、创建SQLite数据库。
     当我们通过SQLiteOpenHelper对象第一次创建数据库时,会回调我们刚才创建的OpenHelper类的onCreate()方法,并且完成对表的建立。
//点击创建数据库时调用的函数
       public void doCreate(View v){
             helper = new OpenHelper( this, "student", 1);
             helper.getReadableDatabase();
      }


  2、更新SQLite数据库
     当我们更改了SQLiteOpenHelper对象的版本号(版本号必须大于或者等于1) 时,会回调OpenHelper的onUpgrade()方法,并且完成对数据库的更新操作。
//点击更新数据库时调用的函数
       public void doUpdate(View v){
             helper = new OpenHelper( this, "student",2);
             helper.getReadableDatabase();
      }

  3、插入数据。
     在对数据的增删改查有两种方法,一种是直接执行sql语句,一种则是面向对象的方式。
 //点击插入数据时调用的函数
       public void insert(View v){
             helper = new OpenHelper( this, "student",2);
            SQLiteDatabase db = helper.getWritableDatabase();
             //执行sql 语句方式
            db.execSQL( "insert into person (name,age) values (?,?)" , new Object[]{"zhangsan" ,22});
             //面向对象方式。
            ContentValues values = new ContentValues();
            values.put( "name", "zhangsi");
            values.put( "age", 23);
            db.insert( "person", null, values);
            db.close();
      }

 4、查询数据。

   //点击查询数据时调用的函数
       public void query(View v){
             helper = new OpenHelper( this, "student",2);
            SQLiteDatabase db = helper.getReadableDatabase();
             //执行sql 语句方式
            Cursor cursor = db.rawQuery( "select * from person" , null );
             while(cursor.moveToNext()) {
                  String name = cursor.getString(cursor.getColumnIndex("name" ));
                   int age = cursor.getInt(cursor.getColumnIndex( "age"));
                  Log. i("MainActivity" , "name=" +name+",age=" +age);
            }
            db.close();
      }

  5、删除数据。
 //点击删除数据时调用的函数
       public void delete(View v){
             helper = new OpenHelper( this, "student",2);
            SQLiteDatabase db = helper.getWritableDatabase();
             //执行sql 语句方式
            db.execSQL( "delete from person where personid = ?" , new String[]{"1" });
            db.close();
      }


  6、更新数据。
//点击更新数据时调用的函数
       public void update(View v){
             helper = new OpenHelper( this, "student",2);
            SQLiteDatabase db = helper.getWritableDatabase();
             //执行sql 语句方式
            db. execSQL( "update person set name=? where personid=?", new String[]{"lixiaolong" ,"2" });
            db.close();
      }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值