Android数据库比较

一:OrmLite

简述: 优点: 1.轻量级;2.使用简单,易上手;3.封装完善

缺点:1.基于反射,效率较低

二:GreenDao

优点:

  1. 库文件比较小,编译时间低,可以避免65K方法限制;
  2. 性能最大化;
  3. API 非常易用,提升了开发效率;
  4. 最小的内存开销;
  5. 可支持原生语句,从Android原生 SQLite 过度到 GreenDao 相对还是比较容易;
  6. 数据表结构和Entity数据结构convert支持,Entity的不同数据结构和数据库存储结构之间做一个灵活的转换;

缺点:

  1. 不支持组合主键,这个很少用到。
  2. 数据库表有关系时,在第一次请求上会有延迟并且之后的更新都不会自动同步,需要主动更新或者清楚缓存之后再请求,写的时候需要主动同时更新。当然这个也不算缺点,现在很多时候在数据库建表的时候很很少使用关联,要么建索引,要么查询的时候自己做关联。
  3. 不支持minmax等函数,需要自己写sql执行execSQL。但这些都可以通过其他方式进行实现。
  4. 不支持合并写,写入的时候判断已有这条数据那么进行更新,没有则实现插入。

参考:https://blog.csdn.net/stven_king/article/details/102942905

三:Room

Room基于SQLite,提供一个抽象层,可以快速访问SQLite的所有功能。

Android数据库比较_第1张图片
room分为三部分:

1.Entity:数据库实体,系统根据Entity类创建数据库,里面规定了PrimaryKey,列名、表名等数据库必备设定。

2.Dao:Database access object:定义了一些操作数据库的操作,比如说增删改查。

3.Database:可以认为是完整的数据库,完整的数据库包括数据库信息和数据库操作,也就是EntityDao。

优点:
1)通过注解生成代码,减少代码量;

2)编译期SQL检查机制,降低风险;

3)对源生数据库做了一些优化性能的改写。

缺点:

1)没有缓存机制。

源码解析:https://blog.csdn.net/asd501823206/article/details/104883056/

 

 

你可能感兴趣的:(面试_Android)