📜  Android SQLite教程(1)

📅  最后修改于: 2023-12-03 15:29:20.893000             🧑  作者: Mango

Android SQLite教程

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应用程序时非常有用的基本技能。