Android关系型数据库
在Android开发中,数据持久化是非常重要的一部分。Android提供了许多不同的数据存储选项,其中之一是关系型数据库。关系型数据库通过表格的方式来存储和管理数据。
Android中的关系型数据库主要是SQLite。SQLite是一种轻量级的关系型数据库,是一个支持SQL语言的嵌入式数据库引擎。SQLite支持大多数常见的SQL查询语句,包括SELECT、INSERT、UPDATE和DELETE等语句,也支持事务和索引等特性。
在Android中,使用SQLite需要使用SQLiteOpenHelper类来管理数据库的创建和升级等操作。下面是一个代码示例:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE mytable (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
这个类继承自SQLiteOpenHelper类,并实现了它的onCreate()和onUpgrade()方法。onCreate()方法在数据库第一次创建时被调用,用于创建新表格。onUpgrade()方法在数据库升级时被调用,可以用于删除旧表格、添加新表格等操作。在这个例子中,我们创建了一个名为“mytable”的表格,它包括了一个自增长的_id列、一个name列和一个age列。
在我们的应用程序中,我们可以像这样使用MyDatabaseHelper类:
MyDatabaseHelper helper = new MyDatabaseHelper(context);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 25);
long id = db.insert("mytable", null, values);
Cursor cursor = db.query("mytable", null, null, null, null, null, "_id DESC");
if (cursor.moveToFirst()) {
do {
long itemId = cursor.getLong(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
// Do something with itemId, name, and age