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
相关产品推荐
相关产品推荐

