SQLite是一种轻量级的数据库,适合用作手机等移动端的数据储存。Android系统内置了SQLite数据库。
创建数据库
SQLiteOpenHelper,该类是Android提供给我们的便于管理数据库的一个类,里面有两个重要方法需要我们在继承时进行重写。分别是onCreate(),在数据库创建时会调用;onUpgrade(),对数据库升级时调用。另外还提供了创建数据库的方法:getReadableDatabase()、getWritableDatabase().上述方法在调用时,如果数据库不存在,则会创建新的数据库,调用onCreate()方法。如果已经存在,则只返回一个当前数据库的SQLiteDatabase对象,onCreate()方法不会调用。
getReadableDatabase():该方法得到的数据库对象,可以对其进行读写操作,但是磁盘空间不足时,数据库将会是只读状态。
getWritableDatabase():该方法得到的数据库对象同样可以进行读写操作,当磁盘空间不足时,将抛出异常。
SQLiteDatabase,该类是一个数据库访问类,便于我们对数据库进行一些增删改查等操作。
具体实现:
1.新建类继承自SQLiteOpenHelper
public class MyDataBaseHelper extends SQLiteOpenHelper {
//SQL建表语句
public static final String CREATE_BOOK = "create table book (id integer primary key autoincrement, " +
"name text, " +
"author text, " +
"price real, " +
"pages integer)";
public MyDataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//调用SQLiteDatabase的execSQL()方法执行SQL语句。此处执行了建表语句
db.execSQL(CREATE_BOOK);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2.创建数据库
//接收参数分别为Context、数据库名、自定义Cursor,传入null即可、数据库版本号
MyDataBaseHelper myDBHelper = new MyDatabaseHelper(this,"BOOK.db",null,1);
myDBHelper.getWritableDatabase();
添加数据
1.我们将要添加的一行数据放入ContentValues对象。通过put()方法设置对应列的值。
ContentValues contentValues = new ContentValues();
contentValues.put("name","book1");
contentValues.put("author","author1");
contentValues.put("price",100);
contentValues.put("pages",998);
2.得到SQLiteDatabase对象,调用insert()方法即可新增一条数据。
SQLiteDatabase database = myDBHelper.getWritableDatabase();
//第一个参数传入表名,第三个参数传入ContentValues对象。
database.insert("book",null,contentValues);
删除数据
调用SQLIteDatabase的delete()方法即可删除对应条件的数据。第一个参数为表名,第二、三个参数用于约束删除条件。如删除表中价格大于50的书
database.delete("book","price > ?",new String[]{"50"});