【问题标题】:How do I load a sqlite DB onto an android app? [duplicate]如何将 sqlite DB 加载到 android 应用程序上? [复制]
【发布时间】:2022-01-03 19:11:58
【问题描述】:

一个用 Kotlin 为 Android 编写的简单应用程序,带有 SQLITE 数据库。当我在另一个模拟器上运行应用程序时,会创建一个新的空数据库。如何在已定义某些数据的情况下向应用程序添加现成的数据库? `class SQLiteHelper(上下文:上下文): SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION){

companion object{
    private const val DATABASE_VERSION = 1
    private const val DATABASE_NAME = "students.db"
    private const val TBL_STUDENT = "tbl_student"

    private const val ID = "id"
    private const val NAME = "name"
    private const val EMAIL = "email"
}

override fun onCreate(db: SQLiteDatabase?) {
    val createTblStudent = ("CREATE TABLE " + TBL_STUDENT + "(" + ID
            + " INTEGER PRIMARY KEY, " + NAME + " TEXT," + EMAIL + " TEXT" + ")")
    db?.execSQL(createTblStudent)
}

override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
    db!!.execSQL("DROP TABLE IF EXISTS $TBL_STUDENT")
    onCreate(db)
}

fun insertStudent(std: StudentModel): Long{
    val db = this.writableDatabase

    val contextValue = ContentValues()
    contextValue.put(ID, std.id)
    contextValue.put(NAME, std.name)
    contextValue.put(EMAIL, std.email)

    val success = db.insert(TBL_STUDENT, null, contextValue)
    db.close()
    return success
}

fun getAllStudent(): ArrayList<StudentModel>{
    val stdList: ArrayList<StudentModel> = ArrayList()
    val selectQuery = "SELECT * FROM $TBL_STUDENT"
    val db = this.readableDatabase

    val cursor: Cursor?

    try{
        cursor = db.rawQuery(selectQuery, null)
    }catch (e: Exception){
        e.printStackTrace()
        db.execSQL(selectQuery)
        return ArrayList()
    }

    var id: Int
    var name:String
    var email: String
    if(cursor.moveToFirst()){
        do{
            id = cursor.getInt(cursor.getColumnIndex("id"))
            name = cursor.getString(cursor.getColumnIndex("name"))
            email = cursor.getString(cursor.getColumnIndex("email"))

            val std = StudentModel(id = id, name = name, email = email)
            stdList.add(std)
        }while (cursor.moveToNext())
    }
    return  stdList
}

fun updateStudents(std: StudentModel) : Int{
    val db = this.writableDatabase

    val contentValues = ContentValues()
    contentValues.put(ID, std.id)
    contentValues.put(NAME, std.name)
    contentValues.put(EMAIL, std.email)

    val success = db.update(TBL_STUDENT, contentValues, "id = " + std.id, null)
    db.close()
    return success
}

fun deleteStudentById(id: Int): Int{
    val db = this.writableDatabase

    val contentValues = ContentValues()
    contentValues.put(ID,id)
    val success = db.delete(TBL_STUDENT, "id=$id", null)
    db.close()
    return success
}

}`

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    在您的 onCreate 方法结束时,使用您的数据列表运行 SQL INSERT 查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2011-10-01
      • 2011-07-23
      • 2021-05-04
      • 2012-02-10
      • 2018-09-04
      相关资源
      最近更新 更多