现在Android的数据库还是比较多的,在这里稍微整理一下,以及说说他们的优缺点,方便以后自己的使用。
ORMLite 项目官网 http://ormlite.com/sqlite_java_android_orm.shtml
greendao 源码地址 https://github.com/greenrobot/greenDAO/
Realm 参考资料 https://realm.io/docs/java/latest/#installation
androrm 源码地址 https://github.com/androrm/androrm/
ActiveAndroid 源码地址 https://github.com/pardom/ActiveAndroid
- ORMLite 曾经使用过这个数据库
优点:使用简单,文档较全面,易上手
缺点:基于反射,效率较低 ,缺少中文翻译文档
因此用过一段时间之后 抛弃了 - greendao 写过小例子(虽然不知道放什么地方了)
优点:1.一个精简的库 2.性能最大化 3.内存开销最小化 4.易于使用的 APIs 5.对Android 进行高度优化 6.效率很高,插入和更新的速度是sqlite的2倍,加载实体的速度是ormlite的4.5倍
缺点:学习成本较高 - Realm
优点:易用: Ream 不是在SQLite基础上的ORM,它有自己的数据查询引擎。并且十分容易使用。跨平台 :现在绝大多数的应用开发并不仅仅只在 iOS 平台上进行开发,还要兼顾到 Android 平台的开发。高级: Ream支持加密,格式化查询,易于移植,支持JSON,流式api,数据变更通知等高级特性。可视化:Realm 还提供了一个轻量级的数据库查看工具,在Mac Appstore 可以下载“Realm Browser”这个工具,开发者可以查看数据库当中的内容,执行简单的插入和删除数据的操作。
Realm的使用条件
目前不支持Android以外的Java
Android Studio >= 1.5.1
较新的Android SDK版本
JDK version >=7.
支持API 9(Android 2.3)以及之后的版本
缺点:
1.类名称的长度最大只能存储 57 个 UTF8 字符。
2.属性名称的长度最大只能支持 63 个 UTF8 字符。
3.NSData以及 NSString属性不能保存超过 16 MB 大小的数据。
4.对字符串进行排序以及不区分大小写查询只支持“基础拉丁字符集”、“拉丁字符补充集”、“拉丁文扩展字符集 A” 以及”拉丁文扩展字符集 B“(UTF-8 的范围在 0~591 之间)。
5.尽管 Realm 文件可以被多个线程同时访问,但是您不能跨线程处理 Realms、Realm 对象、查询和查询结果。
6.Realm对象的 Setters & Getters 不能被重载
- androrm 这个数据库 好像已经停止维护了 ,网上的资料也相对的很少。
- ActiveAndroid 是Android下的一款ORM(Object-relational mapping)框架,采用了反射与注解(Annotation)的方式简化了数据库存储,它的实质也是一个DatabaseManager的一个封装,我们不用关心内部的Cursor的关闭,同步锁的问题,也不用控制它是否会内存泄露,只管用就可以了。不建议接着看了