我在先前的应用程序中使用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, ...);
答案 0 :(得分:3)
我必须使用@Entity批注为所有表一一声明我的所有表吗?
是的
我可以像在sqlite中那样使用rawquery来创建表和插入吗?
不。或者,更重要的是,Room只会妨碍您执行此操作。
因为我从web服务获得了用于创建表的rawquery
Room适用于普通的Android应用程序,您可以在编译时知道表定义,并且可以为其编写Java / Kotlin类(实体,DAO,RoomDatabase
,@ForeignKey
等)。
如果您在编译时不知道表定义,则需要直接使用SQLite或查找一些不需要对数据库架构进行编译时知识的库。