Android 房间插入查询
Android room inserting with a query
我知道可以通过 @Insert
注释将数据插入 SQlite room 库,但我 (出于好奇) 尝试通过 SQL 插入值声明,但 Android studio 向我显示错误,指出无法解析列名。这是一种强制开发人员使用 @Insert
注释的方法,还是我在这里做错了什么?谢谢!
请查看以下屏幕截图 -
如果您省略突出显示的列列表,从而为所有列提供值,例如:-
@Query("INSERT INTO TestTable VALUES(null,:a,:b)")
List<TestTable> getall(String a, String b, String columna, String columnb);
Android Studio 没有抱怨,但你会得到一个编译器错误 :-
error: INSERT query type is not supported yet. You can use:SELECT, DELETE, UPDATE
所以也许早比晚好。
我正在做的是在 RoomDatabase
.
上调用 getOpenHelper().getWritableDatabase()
然后你得到 SupportSQLiteDatabase object
本质上是 non-Room 方式。
从那里您可以调用 execSQL()
或使用带有 table 名称和 ContentValues.
的 insert()
@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)
我知道可以通过 @Insert
注释将数据插入 SQlite room 库,但我 (出于好奇) 尝试通过 SQL 插入值声明,但 Android studio 向我显示错误,指出无法解析列名。这是一种强制开发人员使用 @Insert
注释的方法,还是我在这里做错了什么?谢谢!
请查看以下屏幕截图 -
如果您省略突出显示的列列表,从而为所有列提供值,例如:-
@Query("INSERT INTO TestTable VALUES(null,:a,:b)")
List<TestTable> getall(String a, String b, String columna, String columnb);
Android Studio 没有抱怨,但你会得到一个编译器错误 :-
error: INSERT query type is not supported yet. You can use:SELECT, DELETE, UPDATE
所以也许早比晚好。
我正在做的是在 RoomDatabase
.
getOpenHelper().getWritableDatabase()
然后你得到 SupportSQLiteDatabase object
本质上是 non-Room 方式。
从那里您可以调用 execSQL()
或使用带有 table 名称和 ContentValues.
insert()
@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)