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