在 Android 中,SQLite 是一种轻量级的关系型数据库管理系统,常用于存储和检索结构化数据。以下是一个简单的示例,演示如何在 Android 中使用 SQLite 数据库。

创建数据库帮助类:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;

    // 表名和列名
    public static final String TABLE_NAME = "users";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_USERNAME = "username";
    public static final String COLUMN_AGE = "age";

    // 创建表的 SQL 语句
    private static final String TABLE_CREATE =
            "CREATE TABLE " + TABLE_NAME + " (" +
                    COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                    COLUMN_USERNAME + " TEXT, " +
                    COLUMN_AGE + " INTEGER);";

    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 创建表
        db.execSQL(TABLE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 升级数据库时的操作
        // 可以简单地删除表并调用 onCreate,或执行其他升级操作
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
}

在这个例子中,我们创建了一个 DBHelper 类,它继承自 SQLiteOpenHelper。这个类负责创建和管理数据库,定义了数据库的名称、版本、表名和列名,并提供了创建表的 SQL 语句。在 onCreate 方法中,我们执行创建表的 SQL 语句,而在 onUpgrade 方法中,我们可以定义数据库升级时的操作。

使用数据库:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DBManager {

    private DBHelper dbHelper;
    private SQLiteDatabase database;

    public DBManager(Context context) {
        dbHelper = new DBHelper(context);
    }

    public void open() {
        database = dbHelper.getWritableDatabase();
    }

    public void close() {
        dbHelper.close();
    }

    public long insertUser(String username, int age) {
        ContentValues values = new ContentValues();
        values.put(DBHelper.COLUMN_USERNAME, username);
        values.put(DBHelper.COLUMN_AGE, age);

        return database.insert(DBHelper.TABLE_NAME, null, values);
    }

    public Cursor getAllUsers() {
        String[] columns = {DBHelper.COLUMN_ID, DBHelper.COLUMN_USERNAME, DBHelper.COLUMN_AGE};
        return database.query(DBHelper.TABLE_NAME, columns, null, null, null, null, null);
    }
}

在这个例子中,我们创建了一个 DBManager 类,它包含了对数据库进行操作的一些基本方法。open 方法用于获取可写数据库,close 方法用于关闭数据库连接。insertUser 方法用于插入一条用户记录,getAllUsers 方法用于获取所有用户的数据。

在 Activity 中使用:
import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private DBManager dbManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dbManager = new DBManager(this);
        dbManager.open();

        // 插入用户数据
        dbManager.insertUser("Alice", 25);
        dbManager.insertUser("Bob", 30);

        // 获取所有用户数据
        Cursor cursor = dbManager.getAllUsers();
        displayUserData(cursor);

        // 关闭数据库连接
        dbManager.close();
    }

    private void displayUserData(Cursor cursor) {
        StringBuilder stringBuilder = new StringBuilder();

        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_ID));
            String username = cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_USERNAME));
            int age = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_AGE));

            stringBuilder.append("ID: ").append(id).append(", ")
                    .append("Username: ").append(username).append(", ")
                    .append("Age: ").append(age).append("\n");
        }

        TextView textView = findViewById(R.id.textView);
        textView.setText(stringBuilder.toString());
    }
}

在这个例子中,我们在 onCreate 方法中创建了一个 DBManager 对象,并通过 open 方法打开数据库连接。然后,我们插入了两个用户的数据,并通过 getAllUsers 方法获取所有用户的数据。最后,通过 displayUserData 方法将数据显示在一个 TextView 中。

请注意,这只是一个基础示例,实际应用中可能需要更多的数据库操作和异常处理。


转载请注明出处:http://www.zyzy.cn/article/detail/15189/Android