1. 程式人生 > >ORM輕量級框架---ActiveAndroid

ORM輕量級框架---ActiveAndroid

微信公眾賬號 font 靜態 j2e 配置 查詢 映射 ont lin

ORM即Object-Relational Mapping,對象關系映射。

簡單理解就是把我們Java的對象與數據庫裏面的記錄進行映射。能夠把實體對象持久化到數據庫中。也能把查詢到的記錄映射成Java對象。ORM讓我們徹底解放,一點也不須要再去編寫冗長晦澀的Sql語句,一切都是通過框架去做。不得不說是程序猿的一大福音。

ORM框架實現的原理事實上也非常easy,就是利用Java的反射機制把對象和數據庫記錄映射關聯起來。比方存儲的時候,是把對象的屬性取出來作為記錄的屬性值進行插入。而查詢的時候則是把查詢條件自己主動構建成一條Sql語句,把查詢到的結果集轉成對象列表。J2EE有ibatis,Hibernate框架,我們Android也有GreenDAO,ormlite。xUtils。AFinal等。它們的實現原理都一樣,不同的也僅僅是細節方面的處理。

假設興趣的同學,推薦閱讀下ActiveAndroid的源代碼。Reading the fucking code!

曾經寫過介紹xUtils的系列文章,當中的FinalDb模塊就是一個ORM框架,也是我工作中經常使用的。今天我們介紹的ActiveAndroid的API也是相當的簡單友好。並且功能一樣的強大。ActiveAndroid簡潔的API給人一種用起來非常舒服的感覺,今天主要是介紹下關於CRUD的簡單使用。

一、初始化

有兩種方式。一種是配置AndroidManifest的application的name屬性,同一時候在meta-data標簽中可選的配置db的name和version。二是在自己的Application類中繼承ActiveAndroid的Application;前兩種方式入侵性太強。另一種僅僅需在自己定義的Application中靜態的註入兩個方法就可以。

技術分享


技術分享


技術分享

二、定義實體類

實體類需繼承Model。可自己定義表名和屬性相應的字段名

技術分享

三、插入

能夠實現單條數據插入。也能夠批量插入,同一時候也支持事務。

技術分享

四、刪除

支持基於引用的單條記錄刪除,也支持依據條件進行批量刪除。

技術分享

五、更新

自Model中繼承來的save方法。不僅能夠進行insert、還能夠update;同一時候也能基於條件進行批量的更新。

技術分享

六、查詢

ActiveAndroid的查詢API基本與sql語句的keyword一致,比較友好。這點和xUtils是一樣的

技術分享

寫在最後:ORM框架使用起來確實是非常方便的,給我們編碼提高了效率,可是也有著致命弊端。

前面我們也介紹了ORM的實現的原理是Java的反射機制,反射有個缺點。就是會造成效率不高、耗時較長的現象。當有數據批量操作的時候,會把耗時加長好幾倍。所以當遇到業務中有非常多的記錄要處理的時候,就不推薦大家使用框架了。還是老老實實的寫比較靠譜。

今天幹貨分享到此為止,希望能夠幫助到大家。

假設認為對你有所幫助,歡迎大家訂閱我的微信公眾賬號——Android幹貨分享(ID:android_share)。以下是微信的二維碼。為你提供及時高質的Android幹貨。技術交流QQ群:318588906,歡迎大家加群,共同探討下Android和Java技術,一起壯大我們的微信幹貨分享社區。

技術分享?

ORM輕量級框架---ActiveAndroid