一、几个关键类
1、SQLiteDatabase:android.database.sqlite.SQLiteDatebase:数据库类,用来操作数据库。
2、SQLiteOpenHelper:android.database.sqlite.SQLiteOpenHelper:数据库帮助类,用来创建数据库、及数据库表、获取数据库对象。
3、Cursor:android.database.Cursor:记录集游标。用来操作记录集。
二、实现
1、通过数据库帮助类创建数据库、表。
//自定义类继承于数据库帮助类 class SqliteHelper extends SQLiteOpenHelper { //要创建的表名 public static final String TB_NAME="channel"; //当实例化一个数据库帮助对象时,会调用构造函数,当数据库不存在时,就会创建数据库,然后打开数据库(过程已经被封装起来了) public SqliteHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } //数据库创建完成后,在调用onCreate函数,创建表 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS "+ TB_NAME+"("+ ID+" integer primary key,"+ NAME+" varchar,"+ URL+" varchar"+ ")" ); Log.e("Database","onCreate"); } //检查构造函数的版本号,若传入的版本号高于当前的,就会执行onUpgrade()方法来更新数据库和版本号。 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TB_NAME); onCreate(db); Log.e("Database","onUpgrade"); } } }
SQLiteOpenHelper 的构造函数,当数据库不存在时,就会创建数据库,然后打开数据库(过程已经被封装起来了),再调用onCreate (SQLiteDatabase db)方法来执行创建表之类的操作。当数据库存在时,SQLiteOpenHelper 就不会调用onCreate (SQLiteDatabase db)方法了,它会检测版本号,若传入的版本号高于当前的,就会执行onUpgrade()方法来更新数据库和版本号
2、获取数据库对象
//实例化数据库帮组类
SqliteHelper dbHelper=new SqliteHelper(context,DB_NAME, null, DB_VERSION);
//获得当前数据库
SQLiteDatabase db= dbHelper.getWritableDatabase();
3、操作数据库表
查询:Cursor cursor = db.query("....");
while(cursor.moveToNext())
{
int per = cursor.getInt(0);//获取第一列 的值
String name = cursor.getString(1)//获取第二列的值
}
cursor.close();
db.close();
插入:
ContentValues values = new ContentValues();
values.put(NAME, name);
values.put(URL, url);
//插入新纪录
Long id = db.insert(SqliteHelper.TB_NAME, null, values);
删除:
db.delete(SqliteHelper.TB_NAME, NAME +"='"+name+"'", null);