Android SQLite使用实例
Android SQLite的使用实例
我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个方法。
onCreate(SQLiteDatabase db) : 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。onUpgrade(SQLiteDatabse dv, int oldVersion,int new Version):当打开数据库时传入的版本号与当前的版本号不同时会调用该方法。除了上述两个必须要实现的方法外,还可以选择性地实现onOpen 方法,该方法会在每次打开数据库时被调用。SQLiteOpenHelper 类的基本用法是:当需要创建或打开一个数据库并获得数据库对象时,首先根据指定的文件名创建一个辅助对象,然后调用该对象的getWritableDatabase 或 getReadableDatabase方法 获得SQLiteDatabase 对象。
调用getReadableDatabase 方法返回的并不总是只读数据库对象,一般来说该方法和getWriteableDatabase 方法的返回情况相同,只有在数据库仅开放只读权限或磁盘已满时才会返回一个只读的数据库对象。下面通过一个简单的小例子说明SQLiteOpenDatabase的用法,其中包括创建数据库、插入数据、更新 、查询等等,我们将查询后获取到的数据显示到TextView上。
Java代码:
Java代码
packageeoe.demo;
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
publicclassMySQLiteHelperextendsSQLiteOpenHelper{
//调用父类构造器
publicMySQLiteHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){
super(context,name,factory,version);
}
/**
*当数据库首次创建时执行该方法,一般将创建表等初始化操作放在该方法中执行.
*重写onCreate方法,调用execSQL方法创建表
**/
@Override
publicvoidonCreate(SQLiteDatabasedb){
db.execSQL("createtableifnotexistshero_info("+"idintegerprimarykey,"
+"namevarchar,"+"levelinteger)");
}
//当打开数据库时传入的版本号与当前的版本号不同时会调用该方法
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
}
}
java代码:
Java代码
packageeoe.demo;
importandroid.app.Activity;
importandroid.content.ContentValues;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.widget.TextView;
publicclassActivity01extendsActivity{
MySQLiteHelpermyHelper;
TextViewtv;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.tv);
//创建MySQLit