您的位置:首页 > 移动开发 > Android开发

(4.1.29.1)Android 操作SQLite基本用法之SQLiteOpenHelper

2015-08-10 13:36 639 查看
该类是SQLiteDatabase一个辅助类。这个类主要生成一 个数据库,并对数据库的版本进行管理。当在程序当中调用这个类的方法getWritableDatabase()或者 getReadableDatabase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。 SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里面的3个函数:

1.onCreate(SQLiteDatabase)

在数据库第一次生成的时候会调用这个方法,也就是说,只有在创建数据库的时候才会调用,当然也有一些其它的情况,一般我们在这个方法里边生成数据库表。

2. onUpgrade(SQLiteDatabase,int,int)

当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求。

3. onOpen(SQLiteDatabase):

这是当打开数据库时的回调函数,一般在程序中不是很常使用。

StuDBHelper.java

[java] view
plaincopyprint?





package com.lingdududu.testSQLiteDb;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

public class StuDBHelper extends SQLiteOpenHelper {

private static final String TAG = "TestSQLite";

public static final int VERSION = 1;

//必须要有构造函数

public StuDBHelper(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

}

// 当第一次创建数据库的时候,调用该方法

public void onCreate(SQLiteDatabase db) {

String sql = "create table stu_table(id int,sname varchar(20),sage int,ssex varchar(10))";

//输出创建数据库的日志信息

Log.i(TAG, "create Database------------->");

//execSQL函数用于执行SQL语句

db.execSQL(sql);

}

//当更新数据库的时候执行该方法

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

//输出更新数据库的日志信息

Log.i(TAG, "update Database------------->");

}

}

StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);

//得到一个可写的数据库

SQLiteDatabase db =dbHelper.getWritableDatabase();

ContentValues cv = new ContentValues();

cv.put("sage", "23");

//where 子句 "?"是占位符号,对应后面的"1",

String whereClause="id=?";

String [] whereArgs = {String.valueOf(1)};

//参数1 是要更新的表名

//参数2 是一个ContentValeus对象

//参数3 是where子句

db.update("stu_table", cv, whereClause, whereArgs);

}

StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);

//得到一个可写的数据库

SQLiteDatabase db =dbHelper.getReadableDatabase();

String whereClauses = "id=?";

String [] whereArgs = {String.valueOf(2)};

//调用delete方法,删除数据

db.delete("stu_table", whereClauses, whereArgs);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: