SQLite是什么,为什么要使用SQLite
SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,并且占用资源非常的低 当我们需要存储一些比较复杂的数据的时候,SharedPreferences存储并不能够满足我们的要求,这时候我们就需要一种更加便于管理的存储方式,SQLite便能够帮助我们更加方便的存储和管理数据
如何创建数据库和数据表
使用SQLite创建数据库和表,首先要创建一个类继承SQLiteOpenHelper,并且实现它的方法
private Context context;
private static final String TABLE_PRODUOT = "create table Student(" +
"id integer primary key autoincrement," +
"name text," +
"age integer)" ;
public SQLTest (Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super (context, name, factory, version);
this .context = context;
}
@Override
public void onCreate (SQLiteDatabase db) {
db.execSQL(TABLE_PRODUOT);
}
@Override
public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
}
之后在Activity中创建数据库,onCreate()方法会在创建数据库的时候调用同时创建表 第一个参数为上下文,第二个参数为数据库名,第三个参数为数据库的游标工厂,第四个参数为数据库的版本
SQLTest sql = new SQLTest(this , "Student.db" , null , 1 );
SQLiteDatabase db = sql.getWritableDatabase();
如何添加数据
通过上面获取的SQLiteDatabase,便可以调用增删改查的操作了 创建一个ContentValues 用来容纳数据,然后调用insert()方法,第一个参数是表名,第二个参数当我们没有传入数据的时候可以为某些为空的列自动赋值,这里我们设为null,第三个参数就是传入的数据
ContentValues values = new ContentValues()
values.put ("name" ,nameET.getText ().toString ())
values.put ("age" ,Integer.parseInt (ageET.getText ().toString ().intern ()))
db.insert ("Student" ,null,values)
如何修改与删除数据
修改数据与删除数据比较类似 第三第四个参数用来指定具体更新哪一行,第二个参数表示更新后的数据
db.update ("Student" ,values ,"name = ?" ,new String[]{nameET.getText().toString()});
db.delete ("Student" ,"name = ?" ,new String[]{nameET.getText ().toString ()})
如何查询数据
查询数据是CRUD中最复杂的一种操作,SQL全称翻译成中文就是结构化查询语言,它的大部分功能都体现在查询上,我们这次只使用简单的查询用法 我们调用它的query()方法,会返回一个Cursor对象,query()方法第一个参数是表名,我们只传入表名,其他设置为空
Cursor cursor = db.query("Student" ,null ,null ,null ,null ,null ,null );
if (cursor.moveToFirst ()) {
do {
int id = cursor.getInt (cursor.getColumnIndex ("id" ))
String name = cursor.getString (cursor.getColumnIndex ("name" ))
int age = cursor.getInt (cursor.getColumnIndex ("age" ))
} while (cursor.moveToNext ())
}
cursor.close ()