我有一个使用SqLite存储数据的项目.现在我想创建一些表,并希望使用Room持久性库创建这些表.我可以使用room和Sqlite Api访问同一个数据库吗?这是我的sqlite代码public class DatabaseHelper extends SQLiteOpenHelp...
我有一个使用SqLite存储数据的项目.现在我想创建一些表,并希望使用Room持久性库创建这些表.
我可以使用room和Sqlite Api访问同一个数据库吗?
这是我的sqlite代码
public class DatabaseHelper extends SQLiteOpenHelper {
// Table names
static 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 Thread 类和Runnable 接口详解 2023-04-07
- SpringBoot实现过滤器拦截器的耗时对比 2023-02-05
- 浅析Java中接口和抽象类的七大区别 2023-08-11
- Java使用easyExcel实现导入功能 2023-06-17
- Spring源码解析 Bean的实例化 2023-02-19
- 多方面解读Java中的volatile关键字 2023-07-14
- 解析SpringBoot中使用LoadTimeWeaving技术实现AOP功能 2023-05-24
- JSP实现屏蔽浏览器缓存的方法 2023-08-03
- 二、阿里云CentOS7的Java环境配置 2023-09-01
- webservice实现springboot项目间接口调用与对象传递示例 2023-03-11