当前位置: 首页 > 编程笔记 >

Android 使用SQLiteOpenHelper类

劳昊明
2023-03-14
本文向大家介绍Android 使用SQLiteOpenHelper类,包括了Android 使用SQLiteOpenHelper类的使用技巧和注意事项,需要的朋友参考一下

示例

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "Example.db";
    private static final int DATABASE_VERSION = 3;

    // 对于所有主键,_id应该用作列名
    public static final String COLUMN_ID = "_id";

    // 产品表的表和列名的定义
    public static final String TABLE_PRODUCTS = "Products";
    public static final String COLUMN_NAME = "Name";
    public static final String COLUMN_DESCRIPTION = "Description";
    public static final String COLUMN_VALUE = "Value";

    // 表的定义和Transactions表的列名
    public static final String TABLE_TRANSACTIONS = "Transactions";
    public static final String COLUMN_PRODUCT_ID = "ProductId";
    public static final String COLUMN_AMOUNT = "Amount";

    // 创建产品表声明
    private static final String CREATE_TABLE_PRODUCT = "创建表 " + TABLE_PRODUCTS + "  (" +
            COLUMN_ID + " INTEGER PRIMARY KEY, " +
            COLUMN_DESCRIPTION + " TEXT, " +
            COLUMN_NAME + " TEXT, " +
            COLUMN_VALUE + " REAL" +
            ");";

    // 创建交易表报表
    private static final String CREATE_TABLE_TRANSACTION = "创建表 " + TABLE_TRANSACTIONS + "  (" +
            COLUMN_ID + " INTEGER PRIMARY KEY," +
            COLUMN_PRODUCT_ID + " INTEGER," +
            COLUMN_AMOUNT + " INTEGER," +
            " FOREIGN KEY (" + COLUMN_PRODUCT_ID + ") REFERENCES " + TABLE_PRODUCTS + "(" + COLUMN_ID + ")" +
            ");";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        // onCreate应该始终创建您最新的数据库
        // 新安装应用程序时调用此方法
        db.execSQL(CREATE_TABLE_PRODUCT);
        db.execSQL(CREATE_TABLE_TRANSACTION);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // onUpgrade负责在您执行以下操作时升级数据库
        //更改架构。对于每个版本,您进行的特定更改
        // 该版本中必须使用。
        for (int version = oldVersion + 1; version <= newVersion; version++) {
            switch (version) {

                case 2:
                    db.execSQL("更改表 " + TABLE_PRODUCTS + " ADD COLUMN " + COLUMN_DESCRIPTION + " TEXT;");
                    break;

                case 3:
                    db.execSQL(CREATE_TABLE_TRANSACTION);
                    break;
            }
        }
    }
}
           

 类似资料:
  • 本文向大家介绍android 中 SQLiteOpenHelper的封装使用详解,包括了android 中 SQLiteOpenHelper的封装使用详解的使用技巧和注意事项,需要的朋友参考一下 在android中常用存储数据的基本就三种,sqlite,SharedPreferences,文件存储,其中针对于对象存储,使用sqlite比较多,因为可以对其进行增删改查。本文主要讲解SQLiteOpe

  • 问题内容: 我正在尝试制作我的第一个Android应用程序。我注意到,如果数据库不存在,则不会调用该方法来创建表。但是,即使我尝试调试,该方法也无法正常工作。 请查看下面的代码,并给我任何建议。任何帮助将不胜感激。 问题答案: 我也遇到了 SQLiteOpenHelper的 麻烦。对我有用的是存储成员变量 在SQLiteOpenHelper子类中并调用 在构造函数中。 该问题的答案还包括一些有用的

  • 我们SqliteOpenHelper的基本组成是数据库的创建和更新,并提供了一个SqliteDatebase,使得我们可以用它来工作。查询可以被抽取出来放在其它的类中: class ForecastDbHelper() : ManagedSQLiteOpenHelper(App.instance, ForecastDbHelper.DB_NAME, null, ForecastDb

  • 问题内容: 我正在尝试使用在Android手机上创建本地数据库。 我有一个帮助器类,如下所示,该类用于创建数据库并提供“帮助”。 我想在我的代码的主要部分中创建此类的对象,并在其中创建数据库和表。 问题: 每当我创建该类的对象时,它似乎都不会在助手中调用该方法。我以为这应该发生。我认为这基本上是该类的构造函数。(我相信我错了) 那么,为什么不调用该方法呢? 或者如何在创建类对象的地方创建数据库和表

  • null 我看过其他几个类似的问题,但没有一个有帮助: 模拟包含对SQLiteOpenHelper引用的类时出错 使用mockito库在java中模拟最终类-我在导入PowerMock时遇到了很多问题 如何用mockito模拟最后一个类-我已经添加了依赖项,并用行创建了文件,正如答案中所建议的那样,我仍然得到同样的错误。我还尝试了建议的答案,但这给了我一个‘没有足够的信息来推断类型变量t'erro

  • 如你所知,Android使用SQLite作为它的数据库管理系统。SQLite是一个嵌入app的一个数据库,它的确是非常轻量的。这就是为什么这是手机app的不错的选择。 尽管如此,它的操作数据库的API在Android中是非常原生的。你将会需要编写很多SQL语句和你的对象与ContentValues或者Cursors之间的解析过程。很感激的,联合使用Kotlin和Anko,我们可以大量简化这些。 当