当前位置:首页 > 行业动态 > 正文

如何在Android中创建DB数据库?

在android中创建db数据库,可以使用sqliteopenhelper类。

Android 创建数据库 (DB)

如何在Android中创建DB数据库?  第1张

在Android开发中,SQLite是一种轻量级的嵌入式关系型数据库,非常适合用于存储应用程序的数据,本文将详细介绍如何在Android项目中创建和使用SQLite数据库。

目录

1、SQLite简介

2、创建SQLite数据库

3、创建表

4、插入数据

5、查询数据

6、更新数据

7、删除数据

8、示例代码

SQLite简介

SQLite是一种C语言库,它实现了一个小型的、快速且自给自足的SQL数据库引擎,SQLite是嵌入式的,这意味着它不需要单独的服务器进程或操作环境,这使得它非常适合于移动设备和嵌入式系统。

创建SQLite数据库

在Android中,我们可以通过继承SQLiteOpenHelper类来创建一个数据库。SQLiteOpenHelper类提供了一种简单的方法来管理数据库版本和升级。

public class MyDatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "example.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) {
        // 在这里创建表
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 在这里升级数据库
    }
}

创建表

onCreate方法中,我们可以使用SQL语句创建表。

@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_TABLE_SQL = "CREATE TABLE users (" +
            "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
            "name TEXT, " +
            "age INTEGER)";
    db.execSQL(CREATE_TABLE_SQL);
}

插入数据

我们可以使用insert方法向表中插入数据。

public void addUser(String name, int age) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", name);
    values.put("age", age);
    db.insert("users", null, values);
    db.close();
}

查询数据

我们可以使用query方法从表中查询数据。

public List<String> getAllUsers() {
    List<String> userList = new ArrayList<>();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query("users", new String[]{"name"}, null, null, null, null, null);
    if (cursor.moveToFirst()) {
        do {
            String name = cursor.getString(cursor.getColumnIndex("name"));
            userList.add(name);
        } while (cursor.moveToNext());
    }
    cursor.close();
    db.close();
    return userList;
}

更新数据

我们可以使用update方法更新表中的数据。

public void updateUser(int id, String name, int age) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", name);
    values.put("age", age);
    String selection = "id = ?";
    String[] selectionArgs = {String.valueOf(id)};
    db.update("users", values, selection, selectionArgs);
    db.close();
}

删除数据

我们可以使用delete方法从表中删除数据。

public void deleteUser(int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    String selection = "id = ?";
    String[] selectionArgs = {String.valueOf(id)};
    db.delete("users", selection, selectionArgs);
    db.close();
}

示例代码

以下是一个完整的示例代码,展示了如何创建和使用SQLite数据库:

public class MyDatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "example.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) {
        String CREATE_TABLE_SQL = "CREATE TABLE users (" +
                "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                "name TEXT, " +
                "age INTEGER)";
        db.execSQL(CREATE_TABLE_SQL);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 如果需要升级数据库,可以在这里添加代码
    }
    public void addUser(String name, int age) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", name);
        values.put("age", age);
        db.insert("users", null, values);
        db.close();
    }
    public List<String> getAllUsers() {
        List<String> userList = new ArrayList<>();
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query("users", new String[]{"name"}, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                String name = cursor.getString(cursor.getColumnIndex("name"));
                userList.add(name);
            } while (cursor.moveToNext());
        }
        cursor.close();
        db.close();
        return userList;
    }
    public void updateUser(int id, String name, int age) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", name);
        values.put("age", age);
        String selection = "id = ?";
        String[] selectionArgs = {String.valueOf(id)};
        db.update("users", values, selection, selectionArgs);
        db.close();
    }
    public void deleteUser(int id) {
        SQLiteDatabase db = this.getWritableDatabase();
        String selection = "id = ?";
        String[] selectionArgs = {String.valueOf(id)};
        db.delete("users", selection, selectionArgs);
        db.close();
    }
}
0