Android开发是一种基于Java语言的开发方式,因此在Android开发中使用的数据库和Java开发中使用的数据库类似。Android开发中最常用的数据库种类有SQLite、Room、Realm等,下面分别对这几种数据库进行介绍和实例展示。
1.SQLite
SQLite是Android系统自带的轻量级关系型数据库,是一种嵌入式数据库引擎,不需要额外的独立服务进程,直接访问本地文件的方式进行数据存取。SQLite在开发过程中具有以下优点:
1)开销小:SQLite的体积非常小,无需额外安装,相对于其他数据库轻便得多。
2)易于使用:SQLite的操作简单,SQL语句直接存储在本地文件中,开发者可以直接使用SQL语句进行增删查改操作。
下面是SQLite的代码示例:
创建SQLite数据库:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "my_database";//数据库名称
private static final int DB_VERSION = 1;//数据库版本
public MyDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table test (_id integer primary key autoincrement, name text not null, age integer not null)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists test");
onCreate(db);
}
}
增加数据:
SQLiteDatabase db = myDatabaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "zhangsan");
values.put("age", 20);
db.insert("test", null, values);
values.clear();
查询数据:
SQLiteDatabase db = myDatabaseHelper.getReadableDatabase();
Cursor cursor = db.query("test", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
} while (cursor.moveToNext());
}
cursor.close();
删除数据:
SQLiteDatabase db = myDatabaseHelper.getWritableDatabase();
db.delete("test", "age > ?", new String[] { "20" });
2.Room
Room是Google推出的一个SQLite数据库持久化库。Room底层是基于SQLite的,但提供了更强的类型检查和流畅