一、什么是SQLite?
1、SQLite数据库存储Android系统提供的数据存储方式之一;
2、SQLite是专门为嵌入式设备设计的一款轻量级数据库;
3、SQLite占用资源非常低,在嵌入式设备中,只需要几百k的内存;
4、SQLite支持标准的SQL语法,遵循数据库的ACID事务;
5、SQLite不需要安装,不需要用户密码就可以使用。
SQLiteOpenHelper类:
1、SQLiteOpenHelper是一个数据库辅助类,用来管理数据库的创建和版本,通过继承这个类,实现它的一些方法来对数据库进行一些操作;
2、SOLiteOpenHelper是一个抽象类,子类需要重写onCreate和onUpdate抽象方法,并添加一个构造方法。
onCreate:
1.此方法只在第一次的时候执行,只执行一次;
2.在此方法中使用的SQL语句创建数据表;
3.onCreate方法有一个SQLiteDatabase对象参数,通过调用execSQL方法进行建表SQL语句;
onUpgrade:
1.此方法用来升级数据库结构时触发;
2.当需要增加字段或者增加表时,传递进来一个新的数据库版本号,就会触发此方法;
3.在此方法中可以重写更新现有数据表结构。
创建数据库和数据表的步骤:
1、新建类继承SQLiteOpenHeler;
2、实现构造方法;
3、重写onCreate方法;
4、重写onUpgrade方法;
5、实例化SQLiteOpenHelper的子类对象;
6、调用getReadableDatabase方法或者getWritableDatabase方法。
三、学生姓名数据的增删改查实例:
1、创建一个新的类,继承SQLiteOpenHelper,实现构造方法,onCreate和onUpgrade方法,新建我们需要用到的学生数据库:
private String createSQL = "create table student("
+ "id integer primary key autoincrement not null ,"
+ "name varchar(20) not null,"
+ "age integer ,"
+ "gender varchar(2) )";
2、在MainActivity中进行增删改查的操作.
增:
//增
private void insert() {
String name = nameET.getText().toString();
SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
sqLiteDatabase.insert("student",null,values);
这个"student"为表名
}
删:
//删
private void delete(){
SQLiteDatabase sqLiteDatabase2 = dataBaseHelper.getWritableDatabase();
String name1 = nameET.getText().toString();
sqLiteDatabase2.delete("student","name=?",new String[]{name1});
改:
//改
private void change(){
String name = nameET.getText().toString();
String newName = gaiET.getText().toString();
SQLiteDatabase sqLiteDatabase3 = dataBaseHelper.getWritableDatabase();
ContentValues values1 = new ContentValues();
values1.put("name",newName);
sqLiteDatabase3.update("student",values1,"name=?",new String[]{name});这里的第三个参数叫做占位符,在第四个参数可以补充相应的数据和要求
}
查:
//查
private void search(){
SQLiteDatabase sqLiteDatabase1 = dataBaseHelper.getReadableDatabase();
Cursor cursor = sqLiteDatabase1.query("student",null,null,null,null,null,null);
cursor.moveToFirst();
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.e("NAME",name);
}while (cursor.moveToNext());
cursor.close();
}