一、几个关键类
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);