SQLite也是一个非常重要的考点,但是为什么放最后面讲,事实就是难度较高,而且一般会和登陆注册、ListView结合在一起。
SQLite简单的可以理解为存放在手机里的MySql或SQLserver。
在Android studio中,使用SQLite必然涉及两个类SQLiteDatabase、SQLiteOpenHelper
简单地讲:
SQLiteOpenHelper:用来创建数据库以及表
SQLiteDatabase:用来操作数据库,即增删改查
使用SQLite的步骤,使用的时候在脑子里思考:
- 写一个数据库类,用来创建数据库与表,继承于SQLiteOpenHelper,并重写方法,快速重写的快捷键为Alt+回车,选择重写
- 在数据库类中重写了以下三个方法:构造方法、onCreate方法、onUpgrade方法,构造方法中使用super关键字,传递参数:上下文、数据库文件名、工厂(忽略它,填null)、版本(忽略它,随便填个1);onCreate方法中执行SQLiteDatabase的execSQL方法,创建数据表;onUpgrade方法不用理他,空着。
public class MyHelper extends SQLiteOpenHelper {
public MyHelper(Context context){
//上下文、数据库文件名 后面两个参数工厂与版本别管
super(context,"user.db",null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表SQL语句 需要一些SQL语句基础
//以下SQL语句就是 创建user表,第一个字段为id为自增 int型,第二个字段为account 类型为//varchar,可以理解为字符串型,第三个也是字符串型的password
db.execSQL("CREATE TABLE user(id INTEGER PRIMARY KEY AUTO" +
"INCREMENT ,account VARCHAR(20),password VARCHAR(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
3.在需要数据操作的地方,new上面的数据类,使用SQLiteDatabase对象,执行增删改查,例如如下注册按钮点击操作事件
MyHelper myHelper;
SQLiteDatabase db;
ContentValues values;
myHelper=new MyHelper(this);//new实例化对象
db=myHelper.getWritableDatabase();//获取可读写SQLiteDarabse对象
values=new ContentValues();//创建ContentValues对象 一般用于数据库插入用
values.put("account",account);//设置账号数据
values.put("password",password);//设置密码数据
db.insert("user",null,values);//向user表添加数据 insert方法
db.close();//关闭