Markdown版本筆記 | 個人GitHub首頁 | 個人博客 | 個人微信 | 個人郵箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | baiqiantao | bqt20094 | baiqiantao@sina.com |
ORM數據庫框架 SQLite 經常使用數據庫框架比較java
Demoreact
這些ORM框架的實現方式主要有如下幾種:android
註解
。分爲運行時註解
(Retention爲RUNTIME),編譯時註解
(另外兩種Retention),運行時註解其實也是利用了反射的原理,非運行時註解通常都是用於(編譯時)生成代碼的反射
。除非運行前已經自動生成了代碼,不然能夠確定就是經過反射方式實現的。直接生成代碼
。通常是經過程序根據註解
自動生成須要的代碼。經過運行時註解或反射去創建數據表和實體的關係會致使性能比較低
。從性能角度出發,應該選擇使用編譯時註解或代碼生成的框架。固然,成熟程度,文檔資料等也是考量點。git
GitHub
greenDAO與其餘常見的ORM框架不一樣,其原理不是根據反射進行數據庫的各項操做
,而是一開始就人工生成業務須要的Model和DAO文件
,業務中能夠直接調用相應的DAO文件進行數據庫操做,從而避免了因反射帶來的性能損耗和效率低下。github
以查詢爲例,其首先是建立數據庫,而後在SQLiteOpenHelper.onCreate
方法中根據已生成的model建立全部的表,而db.query其實就是Android原生的查詢操做
,只不過參數是通過DAO文件處理過的,無需手動匹配。sql
因爲須要人工生成model和DAO文件,因此greenDAO的配置就略顯複雜。數據庫
優勢:效率高,速度快,文件較小,佔用更少的內存,操做實體靈活
缺點:學習成本較高。小程序
GitHub
基於註解和反射
的的方式,致使ormlite性能有着必定的損失(運行時註解其實也是利用了反射的原理)api
OrmLite 不是 Android 平臺專用的ORM框架,它是Java ORM
。支持JDBC鏈接,Spring以及Android平臺。語法中普遍使用了運行時註解。安全
優勢:文檔較全面,社區活躍,有好的維護,使用簡單,易上手。
缺點:基於反射,效率較低(GreenDAO比OrmLite要快幾乎4.5倍)
GitHub
An Android library that makes developers use SQLite database extremely easy.
特色
GitHub
A blazing fast, powerful, and very simple ORM android database library that writes database code for you.
特色
編譯時註解
生成,不會致使性能瓶頸。SQLCipher
加密,支持Content Provider Generation。GitHub
官網
Active record[活動目錄] style SQLite persistence[持久化] for Android
Active Record是Yii、Rails等框架中對ORM實現的典型命名方式。Active Android 幫助你以面向對象的方式來操做SQLite。
GitHub
官網
Insanely easy way to work with Android Database.
SugarORM 是 Android 平臺專用ORM。提供簡單易學的APIs,能夠很容易的處理1對1和1對多的關係型數據,並經過3個函數save(), delete() 和 find() (或者 findById()) 來簡化CRUD基本操做。
NoSQL是趨勢。其實對關係型數據庫引入ORM,就是實現了對象型數據庫要作的事情。
Realm is a mobile database: a replacement for SQLite & ORMs
基於C++編寫,直接運行在你的設備硬件上(不須要被解釋),所以運行很快。
Realm是一個直接在手機,平板電腦或可穿戴設備中運行的移動數據庫。 此存儲庫包含Realm的Java版本的源代碼,該版本目前僅在Android上運行。
特徵:
ObjectBox是一個超快的面向對象數據庫,具備強大的關係支持[strong relation support]。 ObjectBox是嵌入到您的Android,Linux,macOS或Windows應用程序中。
特性:
2018-8-17