我有一个使用sqlite存储数据的项目.现在我想创建一些表,并希望使用Room持久性库创建这些表.
我可以使用room和sqlite API访问同一个数据库吗?
这是我的sqlite代码
public class DatabaseHelper extends sqliteOpenHelper {// table namesstatic final String table_FOOD = "_food_table";static final String table_CUISINE = "_cuisine_table";static final String table_UNITS = "_units_table";static final String table_INGREDIENTS = "_ingredIEnts_table";static final String table_CART = "_cart_table";public static final String CLIENT_table_CART = "_clIEnt_cart_table";static final String table_supplier = "_supplier_table";private static final String DB_name = "duplate.db";private static final int DB_VERSION = 3;
这是我的房间数据库创建代码
@Database(entitIEs = arrayOf(IngredIEntType::class), version = 3) abstract class AppDatabase : RoomDatabase() { abstract fun ingredIEntTypeDao(): IngredIEntTypeDao companion object { private val DB_name = "duplate.db" @Volatile private var instance: AppDatabase? = null @Synchronized fun getInstance(context: Context): AppDatabase? { if (instance == null) { instance = create(context) } return instance } private fun create(context: Context): AppDatabase { return Room.databaseBuilder( context, AppDatabase::class.java, DB_name).build() } }}
我知道我需要使用迁移.如果迁移是很方便使用这两个API.需要建议.
现在我想使用sqlite或room访问同一个数据库.会有问题吗?任何建议都会有所帮助
谢谢
解决方法:
Can I access same database using room and sqlite API?
不,你不能. RoomDatabase将是一个完全独立的数据库,您必须将表缓慢移动到新数据库.这是使用Room API的唯一方法.
如果您列出的表是项目中的唯一表,那么它在相当短的时间内看起来是可行的.我建议您使用EntitIEs和Daos从头开始创建新数据库.您面临的最大挑战是将所有sqlite查询转换为Daos,这可能需要花费大量时间,但最终还是值得的.
I kNow I need to use migration. If migration is the handy to use this both API together.
迁移仅用于处理Room数据库中的数据库升级.这与在sqlite中调用onUgrade相同.
按照本指南逐步移动到房间:
https://medium.com/google-developers/incrementally-migrate-from-sqlite-to-room-66c2f655b377
以上是内存溢出为你收集整理的java – 使用Room persistence库和sqlite全部内容,希望文章能够帮你解决java – 使用Room persistence库和sqlite所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)