Android房间插入查询

时间:2018-09-20 10:26:26

标签: android sqlite android-sqlite android-room

我知道可以通过@Insert注释将数据插入SQlite房间库,但是我(出于好奇)尝试通过SQL语句插入值,但是Android Studio向我显示了错误说明列名称无法解析。是否可以强迫开发人员使用@Insert注释,或者我在这里做错了什么?谢谢!

请查看以下屏幕截图- enter image description here

3 个答案:

答案 0 :(得分:0)

如果您省略了突出显示的列列表,从而为所有列提供了值,例如:-

error: INSERT query type is not supported yet. You can use:SELECT, DELETE, UPDATE

Android Studio不会抱怨,但是您会收到以下编译器错误:-

{{1}}

所以也许早点比以后好。

答案 1 :(得分:0)

我正在做的是在 getOpenHelper().getWritableDatabase() 上致电RoomDatabase

然后您获得SupportSQLiteDatabase object,这实际上是非客房方式。

由此您可以调用execSQL()或将insert()与表名和 ContentValues 一起使用。

答案 2 :(得分:0)

@Entity
data class ModulesRoom(
    @PrimaryKey(autoGenerate = false)
    var id: Int = 0,
    var nav: String = "",
    var name: String = "",
    var imageurl: String = ""
)
for List Object
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun saveEmployees(modules: List<ModulesRoom>)

for single obbjet
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun saveEmployees(modules: ModulesRoom)

Ussage 
val mModules = Modules() 
mModules.id = values
mModules.nav = values 
saveEmployees(mModules)