一:OrmLite
简述: 优点: 1.轻量级;2.使用简单,易上手;3.封装完善
缺点:1.基于反射,效率较低
二:GreenDao
优点:
- 库文件比较小,编译时间低,可以避免65K方法限制;
- 性能最大化;
- API 非常易用,提升了开发效率;
- 最小的内存开销;
- 可支持原生语句,从Android原生
SQLite
过度到GreenDao
相对还是比较容易; - 数据表结构和
Entity
数据结构convert
支持,Entity
的不同数据结构和数据库存储结构之间做一个灵活的转换;
缺点:
- 不支持组合主键,这个很少用到。
- 数据库表有关系时,在第一次请求上会有延迟并且之后的更新都不会自动同步,需要主动更新或者清楚缓存之后再请求,写的时候需要主动同时更新。当然这个也不算缺点,现在很多时候在数据库建表的时候很很少使用关联,要么建索引,要么查询的时候自己做关联。
- 不支持
min
、max
等函数,需要自己写sql
执行execSQL
。但这些都可以通过其他方式进行实现。 - 不支持合并写,写入的时候判断已有这条数据那么进行更新,没有则实现插入。
参考:https://blog.csdn.net/stven_king/article/details/102942905
三:Room
Room基于SQLite,提供一个抽象层,可以快速访问SQLite的所有功能。
room分为三部分:
1.Entity:数据库实体,系统根据Entity类创建数据库,里面规定了PrimaryKey
,列名、表名等数据库必备设定。
2.Dao:Database access object:定义了一些操作数据库的操作,比如说增删改查。
3.Database:可以认为是完整的数据库,完整的数据库包括数据库信息和数据库操作,也就是Entity
和Dao。
优点:
1)通过注解生成代码,减少代码量;
2)编译期SQL检查机制,降低风险;
3)对源生数据库做了一些优化性能的改写。
缺点:
1)没有缓存机制。
源码解析:https://blog.csdn.net/asd501823206/article/details/104883056/