gpt4 book ai didi

安卓房间数据库。以表名作为参数创建和删除表

转载 作者:行者123 更新时间:2023-11-29 23:32:07 25 4
gpt4 key购买 nike

有什么方法可以创建和删除类似于“RawQuery”的表吗?

我尝试使用 @RawQuery 注释 (这对我来说是完美的解决方案) 但是当我编译时我得到了一个错误说用 RawQuery 注释的方法不能返回 void

我只读了 SELECT、UPDATEDELETE 语句在使用 @Query 时是允许的。

我想通过将 tablename 作为参数传递来实现“创建或删除表”,如下所示:

@Query("DROP TABLE :name")
void deleteTable (String name);

关于如何实现这一点有什么想法吗?

谢谢!

最佳答案

Official doc指出,

RawQuery serves as an escape hatch where you can build your own SQL query at runtime but still use Room to convert it into objects.

RawQuery methods must return a non-void type. If you want to execute a raw query that does not return any value, use RoomDatabase#query methods.

或者像这样使用它,

@RawQuery
int deleteTable (SupportSQLiteQuery query); //We can return int status like it used to return with database.delete()

//Usage

dao.deleteTable(
new SimpleSQLiteQuery("DROP TABLE tablename")
)

关于安卓房间数据库。以表名作为参数创建和删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com