Menma
Menma

Reputation: 809

How to create table in Room Library using rawquery?

I used sqlite in my previous application to create a database. now I want to create a new application using Room library. I have a problem where I have more than 100 tables. do I have to declare all my tables in class one by one for all my tables using @Entity annotation? can I make tables and inserts use rawquerylike what I did in sqlite such as like this :

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

and can I using rawquery for insert like this : INSERT INTO table_name VALUES (value1, value2, value3, ...);

Upvotes: 0

Views: 744

Answers (1)

CommonsWare
CommonsWare

Reputation: 1007296

do I have to declare all my tables in class one by one for all my tables using @Entity annotation?

Yes.

can I make tables and inserts use rawquerylike what I did in sqlite such as like this :

No. Or, more to the point, Room will only get in the way of you doing this.

because I got the rawquery for create table from webservice

Room is for ordinary Android apps, where you know your table definitions at compile time and can write the Java/Kotlin classes for them (entities, DAOs, RoomDatabase, @ForeignKey, etc.).

If you do not know your table definitions at compile time, you will need to work with SQLite directly or find some other library that does not require compile-time knowledge of your database schema.

Upvotes: 4

Related Questions