①应用SQLite,首先需了解SQLiteHelper类,写一个类继承它,并实现里面的构造方法和重写它的onCreate以及onUpgrade方法。
public class DatabaseHelper extends SQLiteOpenHelper {
// 分别是上下文、数据库名称、游标工厂(使用默认的null)和版本号,数据库名称和版本号可以放在常量类里,用public static final修饰。
public DatabaseHelper(Context context) {
super(context, Constant.DB_NAME, null, Constant.DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//第一次创建数据库sql语句 并执行,相当于初始化数据库,这里是新建了一张表
//这个方法继承自SQLiteOpenHelper,会自动调用 也就是会当新建了一个DatabaseHelper对象时,就会默认新建一张表
String sql = "CREATE TABLE "+Constant.TABLE_NAME+"(_id integer,name varchar,age integer,score integer)";
Log.d(Constant.TAG,"创建数据库");
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库时的回调(或者更新——添加新列)
Log.d(Constant.TAG,"升级数据库");
String sql;
switch (oldVersion){
case 1://添加两个字段phone 和 address
sql = "alter table "+Constant.TABLE_NAME+" add phone integer";
db.execSQL(sql);
sql = "alter table "+Constant.TABLE_NAME+" add address varchar";
db.execSQL(sql);
break;
case 2:// 添加一个字段address
sql = "alter table "+Constant.TABLE_NAME+" add address varchar";
db.execSQL(sql);
break;
case 3:
break;
}
}
}
②在MainActivity程序的入口onCreate里,新建一个DatabaseHelper类的对象,然后获取数据库。在Device File Explorer里就可以找到新建的数据库
DatabaseHelper helper = new DatabaseHelper(this);
helper.getWritableDatabase();
建议把一些常量放在自定义类里,例如Constans.java。