You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中如何在SQLite脚本直接插入初始数据无需应用前端输入

实现SQLite数据库预插入初始数据方案

核心逻辑

SQLiteOpenHelper的onCreate方法仅会在数据库文件首次创建时触发1次,因此直接将初始数据的插入逻辑放在建表语句之后执行即可,无需通过前端界面操作。

具体修改说明

直接在onCreate方法的建表逻辑后添加插入语句,可选择两种插入方式:

  • 方式1:直接执行原生SQL插入语句,适合批量插入多条固定数据
  • 方式2:调用SQLiteDatabase封装的insert方法,写法更安全,可避免SQL语法错误

修改后的完整代码示例

package com.example.tacoskingapp3;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class ArticleManager extends SQLiteOpenHelper {

    public ArticleManager(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, "Article.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        // 建表语句
        String CreateTable = "CREATE TABLE articles (IdArticle INTEGER PRIMARY KEY  autoIncrement NOT NULL, NomArticle TEXT NOT NULL UNIQUE, TypeArticle TEXT NOT NULL, PrixArticle DECIMAL NOT NULL)";
        sqLiteDatabase.execSQL(CreateTable);

        // ========== 新增:插入初始数据 ==========
        // 方式1:原生SQL批量插入示例,可替换为你自己的商品数据
        sqLiteDatabase.execSQL("INSERT INTO articles (NomArticle, TypeArticle, PrixArticle) VALUES (\"牛肉塔可\", \"主食\", 28.5)");
        sqLiteDatabase.execSQL("INSERT INTO articles (NomArticle, TypeArticle, PrixArticle) VALUES (\"鸡肉塔可\", \"主食\", 25.5)");
        sqLiteDatabase.execSQL("INSERT INTO articles (NomArticle, TypeArticle, PrixArticle) VALUES (\"芝士玉米卷\", \"小食\", 12)");
        sqLiteDatabase.execSQL("INSERT INTO articles (NomArticle, TypeArticle, PrixArticle) VALUES (\"柠檬气泡水\", \"饮品\", 10)");

        // 方式2:用ContentValues插入示例,容错性更高
        // ContentValues values = new ContentValues();
        // values.put("NomArticle", "牛肉塔可");
        // values.put("TypeArticle", "主食");
        // values.put("PrixArticle", 28.5);
        // sqLiteDatabase.insert("articles", null, values);
        // 重复上述代码插入其余数据即可
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVer, int newVer) {
        // 后续版本更新需要修改表结构或者新增初始数据,可在这里处理
    }
}

注意事项

  • 如果之前已经在测试设备上安装过应用生成了旧的数据库文件,需要先卸载应用清除旧数据,再重新安装才能触发onCreate执行插入逻辑
  • 后续需要新增初始数据时,可以升级数据库版本,在onUpgrade方法中处理对应的插入逻辑
  • 插入完成后,你可以在数据访问层写查询语句获取所有articles数据,适配到RecyclerView的Adapter即可展示

内容的提问来源于stack exchange,提问作者Quentin Ramecourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:54:05