SQLite 数据库的 onCreate() / onUpgrade() 方法何时运行

SQLite 数据库的 onCreate() / onUpgrade() 方法何时运行

在本文中,我们将介绍 SQLite 数据库中的 onCreate() 和 onUpgrade() 方法何时运行。

阅读更多:SQLite 教程

SQLiteOpenHelper 类

在 Android 中,SQLiteOpenHelper 是一个用于管理 SQLite 数据库的帮助类。它提供了创建数据库、升级数据库版本以及执行 SQL 语句的功能。SQLiteOpenHelper 类有两个重要的方法:onCreate() 和 onUpgrade()。

onCreate() 方法

当我们首次访问一个不存在的数据库时,SQLiteOpenHelper 的 onCreate() 方法将被调用。在该方法中,我们可以执行创建数据库所需的表和初始化数据的任务。如果数据库已经存在,调用这个方法将没有任何效果。以下是一个示例:

public class MyDatabaseHelper extends SQLiteOpenHelper {
    // ...

    @Override
    public void onCreate(SQLiteDatabase db) {
        String createTableQuery = "CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)";

        db.execSQL(createTableQuery);
    }

    // ...
}

以上示例中,当首次访问数据库时,将创建一个名为 “my_table” 的表,包含 “id” 和 “name” 两个列。

onUpgrade() 方法

当我们需要对数据库进行升级时,SQLiteOpenHelper 的 onUpgrade() 方法将被调用。数据库升级可能包括添加新表、删除表、更改表结构等操作。在这个方法中,我们需要通过执行相应的 SQL 语句来更新数据库。以下是一个示例:

public class MyDatabaseHelper extends SQLiteOpenHelper {
    // ...

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion < 2) {
            String addColumnQuery = "ALTER TABLE my_table ADD COLUMN age INTEGER";

            db.execSQL(addColumnQuery);
        }

        // ... 其他升级操作
    }

    // ...
}

以上示例将在数据库版本从 1 升级到 2 时,向 “my_table” 表中添加一个名为 “age” 的新列。

onCreate() 和 onUpgrade() 的调用时机

SQLiteOpenHelper 的 onCreate() 和 onUpgrade() 方法都是根据数据库版本进行调用的。

  • onCreate() 方法只会在数据库首次创建时调用,通常在应用程序安装后首次使用数据库时触发。
  • onUpgrade() 方法则在数据库版本发生变化时调用。当 newVersion 大于 oldVersion 时,表示要进行数据库的升级操作。

在使用 SQLiteOpenHelper 创建数据库对象时,需要传递一个数据库名称和版本号。当传递的版本号高于当前数据库的版本时,SQLiteOpenHelper 会触发 onUpgrade() 方法;当传递的版本号等于或小于当前数据库版本时,SQLiteOpenHelper 会触发 onCreate() 方法。

总结

在本文中,我们介绍了 SQLite 数据库中的 onCreate() 和 onUpgrade() 方法何时运行。通过这两个方法,我们可以方便地创建、升级数据库并进行数据库操作。对于需要创建表和添加、更新表结构的场景,onCreate() 和 onUpgrade() 是非常有用的方法。使用 SQLiteOpenHelper 类和这两个方法,我们能够更好地管理和操作 SQLite 数据库。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程