如何使用rawquery在Room Library中创建表?

时间:2018-11-11 12:38:19

标签: java android sqlite android-room

我在先前的应用程序中使用sqlite创建了一个数据库。现在,我想使用Room library创建一个新的应用程序。我有一个超过100张桌子的问题。我必须使用@Entity注释一一声明所有类的所有表吗?我可以像在rawquery中那样使用sqlite做表和插入,就像这样:

@Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS APP_VERSION( ID INTEGER PRIMARY KEY, LAST_UPDATE TEXT"); }

,我可以使用rawquery这样插入吗:  INSERT INTO table_name VALUES (value1, value2, value3, ...);

1 个答案:

答案 0 :(得分:3)

  

我必须使用@Entity批注为所有表一一声明我的所有表吗?

是的

  

我可以像在sqlite中那样使用rawquery来创建表和插入吗?

不。或者,更重要的是,Room只会妨碍您执行此操作。

  

因为我从web服务获得了用于创建表的rawquery

Room适用于普通的Android应用程序,您可以在编译时知道表定义,并且可以为其编写Java / Kotlin类(实体,DAO,RoomDatabase@ForeignKey等)。

如果您在编译时不知道表定义,则需要直接使用SQLite或查找一些不需要对数据库架构进行编译时知识的库。