標籤:sql語句 初始化 size version 事務 輕量級 ldb 儲存 二維碼
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