ORM即Object-Relational Mapping,對象關係映射。簡單理解就是把咱們Java的對象與數據庫裏面的記錄進行映射,能夠把實體對象持久化到數據庫中,也能把查詢到的記錄映射成Java對象。ORM讓咱們完全解放,一點也不須要再去編寫冗長晦澀的Sql語句,一切都是經過框架去作,不得不說是程序員的一大福音。 android
ORM框架實現的原理其實也很簡單,就是利用Java的反射機制把對象和數據庫記錄映射關聯起來。好比存儲的時候,是把對象的屬性取出來做爲記錄的屬性值進行插入;而查詢的時候則是把查詢條件自動構建成一條Sql語句,把查詢到的結果集轉成對象列表。J2EE有ibatis,Hibernate框架,咱們Android也有GreenDAO,ormlite,xUtils,AFinal等。它們的實現原理都同樣,不一樣的也只是細節方面的處理。若是興趣的同窗,推薦閱讀下ActiveAndroid的源碼。Reading the fucking code! 程序員
之前寫過介紹xUtils的系列文章,其中的FinalDb模塊就是一個ORM框架,也是我工做中經常使用的。今天咱們介紹的ActiveAndroid的API也是至關的簡單友好,並且功能同樣的強大。ActiveAndroid簡潔的API給人一種用起來很舒服的感受,今天主要是介紹下關於CRUD的簡單使用。 sql
1、初始化 數據庫
有兩種方式,一種是配置AndroidManifest的application的name屬性,同時在meta-data標籤中可選的配置db的name和version;二是在本身的Application類中繼承ActiveAndroid的Application;前兩種方式入侵性太強,還有一種只需在自定義的Application中靜態的注入兩個方法便可。 微信
2、定義實體類 app
實體類需繼承Model,可自定義表名和屬性對應的字段名 框架
3、插入 編碼
能夠實現單條數據插入,也能夠批量插入,同時也支持事務。 spa
4、刪除 .net
支持基於引用的單條記錄刪除,也支持根據條件進行批量刪除。
5、更新
自Model中繼承來的save方法,不只能夠進行insert、還能夠update;同時也能基於條件進行批量的更新。
6、查詢
ActiveAndroid的查詢API基本與sql語句的關鍵字一致,比較友好。這點和xUtils是同樣的
寫在最後:ORM框架使用起來確實是很方便的,給咱們編碼提升了效率,可是也有着致命弊端。前面咱們也介紹了ORM的實現的原理是Java的反射機制,反射有個缺點,就是會形成效率不高、耗時較長的現象。當有數據批量操做的時候,會把耗時加長好幾倍。因此當遇到業務中有不少的記錄要處理的時候,就不推薦你們使用框架了,仍是老老實實的寫比較靠譜。今天干貨分享到此爲止,但願能夠幫助到你們。
若是以爲對你有所幫助,歡迎你們訂閱個人微信公衆帳號——Android乾貨分享(ID:android_share)。下面是微信的二維碼,爲你提供及時高質的Android乾貨。技術交流QQ羣:318588906,歡迎你們加羣,共同探討下Android和Java技術,一塊兒壯大咱們的微信乾貨分享社區。