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

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

1.onCreate(SQLiteDatabase)

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

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

3.  onOpen(SQLiteDatabase):

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


StuDBHelper.java

[java]  view plain copy print ?
  1. package com.lingdududu.testSQLiteDb;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  6. import android.database.sqlite.SQLiteOpenHelper;  
  7. import android.util.Log;  
  8.   
  9. public class StuDBHelper extends SQLiteOpenHelper {  
  10.   
  11. private static final String TAG = "TestSQLite";  
  12. public static final int VERSION = 1;  
  13.   
  14. //必须要有构造函数  
  15. public StuDBHelper(Context context, String name, CursorFactory factory,  
  16. int version) {  
  17. super(context, name, factory, version);  
  18. }  
  19.   
  20. // 当第一次创建数据库的时候,调用该方法   
  21. public void onCreate(SQLiteDatabase db) {  
  22. String sql = "create table stu_table(id int,sname varchar(20),sage int,ssex varchar(10))";  
  23. //输出创建数据库的日志信息  
  24. Log.i(TAG, "create Database------------->");  
  25. //execSQL函数用于执行SQL语句  
  26. db.execSQL(sql);  
  27. }  
  28.   
  29. //当更新数据库的时候执行该方法  
  30. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  31. //输出更新数据库的日志信息  
  32. Log.i(TAG, "update Database------------->");  
  33. }  
  34. }  
  1.   
  2. StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);  
  3. //得到一个可写的数据库  
  4. SQLiteDatabase db =dbHelper.getWritableDatabase();  
  5. ContentValues cv = new ContentValues();  
  6. cv.put("sage""23");  
  7. //where 子句 "?"是占位符号,对应后面的"1",  
  8. String whereClause="id=?";  
  9. String [] whereArgs = {String.valueOf(1)};  
  10. //参数1 是要更新的表名  
  11. //参数2 是一个ContentValeus对象  
  12. //参数3 是where子句  
  13. db.update("stu_table", cv, whereClause, whereArgs);  
  14. }  

  1. StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);  
  2. //得到一个可写的数据库  
  3. SQLiteDatabase db =dbHelper.getReadableDatabase();  
  4. String whereClauses = "id=?";  
  5. String [] whereArgs = {String.valueOf(2)};  
  6. //调用delete方法,删除数据   
  7. db.delete("stu_table", whereClauses, whereArgs);  




你可能感兴趣的:((4.1.29.1)Android 操作SQLite基本用法之SQLiteOpenHelper)