📅  最后修改于: 2023-12-03 15:29:20.893000             🧑  作者: Mango
SQLite是一种轻型的嵌入式数据库,适用于移动应用程序。在Android开发中,可以使用SQLite来存储和管理应用程序的数据。本教程将介绍如何在Android应用程序中使用SQLite数据库。
在Android中,可以使用SQLiteOpenHelper类来创建数据库并进行版本管理。SQLiteOpenHelper类是一个抽象类,需要继承并实现其抽象方法来创建数据库。
以下是一个示例SQLiteOpenHelper实现类:
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
在上述示例中,我们定义了一个名为"mydatabase.db"的数据库,并定义了一个包含"id"和"name"两个字段的表"mytable"。在onCreate()方法中,我们执行了一条SQL语句来创建该表。在onUpgrade()方法中,我们删除了旧的表并创建了一个新的表。
要向数据库中插入数据,可以使用SQLiteDatabase类中的insert()方法。以下是一个示例:
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "张三");
db.insert("mytable", null, values);
在上述示例中,我们首先创建了一个DBHelper对象以获取可写数据库。然后,我们使用ContentValues对象来封装要插入的数据,并使用insert()方法来将其插入到"mytable"表中。
要从数据库中查询数据,可以使用SQLiteDatabase类中的query()方法。以下是一个示例:
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
String[] columns = {"id", "name"};
String[] selectionArgs = {"%张%"};
Cursor cursor = db.query("mytable", columns, "name LIKE ?", selectionArgs, null, null, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.d("MyApp", "ID:" + id + " Name:" + name);
} while (cursor.moveToNext());
}
cursor.close();
在上述示例中,我们获取了一个可写的SQLiteDatabase对象,并使用query()方法从"mytable"表中查询数据。我们指定了要查询的列、WHERE子句和WHERE子句中的参数,以及按照ID升序排序。取回表的数据,这里包含数据行的ID和Name。最后使用cursor对象遍历结果集以输出所有行。
要更新数据库中的数据,可以使用SQLiteDatabase类中的update()方法。以下是一个示例:
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "李四");
String selection = "id=?";
String[] selectionArgs = {"1"};
db.update("mytable", values, selection, selectionArgs);
在上述示例中,我们简单地将ID为1的"mytable"表中的"name"字段更新为"李四"。
要从数据库中删除数据,可以使用SQLiteDatabase类中的delete()方法。以下是一个示例:
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
String selection = "id=?";
String[] selectionArgs = {"1"};
db.delete("mytable", selection, selectionArgs);
在上述示例中,我们简单地删除了ID为1的"mytable"表中的一行数据。
在本教程中,我们介绍了如何在Android应用程序中使用SQLite数据库。我们学习了如何创建和更新数据库、如何插入、查询、更新和删除数据,以及如何使用Cursor对象来遍历查询结果集。这些都是在创建Android应用程序时非常有用的基本技能。