1. 程式人生 > >Android資料庫框架-Archiver(LiteOrm)的使用

Android資料庫框架-Archiver(LiteOrm)的使用

轉自:Android資料庫框架-Archiver(LiteOrm)的使用



 在Android開發中,大家開發不同專案,不同的專案就不有不同需求。但是不管是什麼專案都會涉及到資料儲存。比如SharePreferences,SQLite,File等方式。但是我最近開發的專案是一個有IM的專案。所以需要用到SQLite,原因是這其中的資料並不是所有資料都是在後臺拉取的。也有需要自己去建立表,和填充資料的功能。下面具體講講我在專案中使用的資料庫和所遇到的資料庫問題。

      LiteOrm: LiteOrm是一個速度快、小巧卻強大的android ORM框架類庫,LiteOrm

讓你一行程式碼實現資料庫的增刪改查操作,以及實體關係的持久化和自動對映。

  • 輕量,專注,效能優先,執行緒無關,專注資料及其關係(關係是重點)儲存和讀取。 
  • 不需要工具輔助,實體不需要無參構造,不需要繁多註解,約定大約配置,一切多餘的,都不需要。
  • 使用極致簡約:db.save(u); db.delete(u); db.deleteAll(U.class);

    開源專案地址:https://github.com/litesuits/android-lite-orm
    作者個人主頁:http://litesuits.com/

    我為什麼選擇用LiteOrm的原因:

  •       因為我開發的專案是一個IM的專案,當然要允許賬號切換當賬號切換之後上一個使用者對應的資料和下一個使用者對應的資料怎麼區分?這是一個細節上的問題。所以我採用的QQ的做法,一個使用者對應一個數據庫。有些庫寫的也不錯,可是考慮的不周全,一個使用者對應一個數據庫是最好的,但是有些庫沒有考慮進去,但是LiteOrm可以自定義資料庫名字已經目錄。
  •      在當我使用其他的庫的時候,報錯了,尼瑪我研究看瞎都沒有看出到底是什麼錯,沒有一個準確的提示告訴我到底是什麼地方錯誤。比如我其中有一個欄位是from,這個是資料庫關鍵字,總是建立不成功,但是那個庫又報一些看不懂錯,根本沒有說倒是是哪錯了。但是在我使用LiteOrm的時候哪裡錯了會明確的告訴你。
  •      因為LiteOrm體積小,專一,一個庫只做一件事,是什麼庫就做什麼事情,有些庫什麼功能都有,又是HTTP請求,又是下載圖片,但是我只需要用到其中一個模組而已。


    1、建立資料庫:


?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /**       * 建立資料庫細節 :       * 細節一:每次啟動都會呼叫這個方法,是否會重複建立,或者說怎麼判斷這個資料庫已經存在。       * 回答:盡在第一次建立,開發這不用關心存在否。       *       * 細節二:如果指定目錄建立在SD卡上,解除安裝APP之後,重新安裝,以前的建立的資料庫還存在       * 回答:如果不想這樣,就不要指定建立在SD卡上面,預設建立就在APP裡。解除安裝後資料庫就不存在了       *       * 細節三:建立資料庫有兩種模式,第一種是單一操作沒有級聯關係的,第二種是級聯操作。       * 建立單一操作模式:LiteOrm.newSingleInstance(_activity, DB_NAME);       * 建立級聯操作模式:LiteOrm.newCascadeInstance(_activity, DB_NAME);       */      public static void createDb(Context _activity,Object userId){           //DB_NAME = Environment.getExternalStorageDirectory().getAbsolutePath()+"/pinme.db";          DB_NAME = "pinme_" + userId.toString() + ".db" ;              liteOrm = LiteOrm.newCascadeInstance(_activity, DB_NAME);              liteOrm.setDebugged( true );      }


  解釋一下建立資料庫Cascade 和 Single 兩種模式的的區別:

    LiteOrm是基類,是基礎。有兩個孩子實現:Cascade 和 Single。

    如果使用Single,效率最高,只儲存當前Model,簡單的首選。

    如果使用Cascade例項,將會無限級聯操作(不會死迴圈),將所有與這個Model相關的實體、關係都儲存下來。 重點介紹下Cascade,舉個例子,一個學校有10個學院(一對多),一個學院10個專業,一個專業10個班級,一個班級10個老師,一個老師10個學生(多對多關係)。只要呼叫cascade.save( school ); 那麼這個學校,以及10 0000個學生 ,和他們的關係,都儲存下來了。 刪除也一樣,都刪了

 2、如何建立表:都說了ORM嘛,所以不需要像android原生的程式碼那樣去寫SQL語句去建立。只需要如下建立實體類


?

相關推薦

Android資料庫框架-Archiver(LiteOrm)的使用

轉自:Android資料庫框架-Archiver(LiteOrm)的使用  在Android開發中,大家開發不同專案,不同的專案就不有不同需求。但是不管是什麼專案都會涉及到資料儲存。比如SharePreferences,SQLite,File等方式。但是我最近開

Android 資料庫框架litepal的使用

來源:郭霖大神http://blog.csdn.net/guolin_blog/article/details/38461239 要想熟練地操作任何一個數據庫,最最基本的要求就是要懂SQL語言,這也是每個程式設計師都應該掌握的技能。雖說SQL博大精深,要想精通確實很難,但最基本的一

Android 資料庫框架GreenDao與LitePal

更多幹貨 分散式實戰(乾貨) spring cloud 實戰(乾貨) mybatis 實戰(乾貨) spring boot 實戰(乾貨) React 入門實戰(乾貨) 構建中小型網際網路企業架構(乾貨) python 學習持

Android 資料庫框架 DBFlow 的使用

原文首發於微信公眾號:jzman-blog,歡迎關注交流! DBFlow 是一個基於註解處理器開發的使用方便的 ORM Android 資料庫,該庫簡化了很多多餘的程式碼,並且提供了好用的 API 來處理與資料庫的互動,讓開發者專注 App 的開發。下面將從以下幾個方面

Android資料庫框架GreenDao&Realm實戰分析

Android開發的童鞋應該都知道,使用官方的SQLite資料庫,可以滿足我們大部分增刪改查的需求,然而隨著Android技術的逐步成長,你會慢慢發現SQLite越來越不能滿足我們的需求。總結為以下主要幾點: 1、創表,增刪改查需要些大量程式碼,開發效率極低

Android-資料庫框架彙總

一:OrmLite簡述: 優點: 1.輕量級;2.使用簡單,易上手;3.封裝完善;4.文件全面。缺點:1.基於反射,效率較低(本人還沒有覺得效率低);2.缺少中文翻譯文件整合方法:把jar包複製到as的libs資料夾下,並且引用jar包即可用於學習的相關部落格:我的部落格總結

android資料庫框架LitePal的簡單使用

GitHub地址:https://github.com/LitePalFramework/LitePal 步驟1:下載 compile 'org.litepal.android:core:1.4.0' 步驟2: 配置檔案litepal.xml 在 assets 資料夾

Android資料庫框架一、GreenDao

簡述:greenDAO 是一個將物件對映到 SQLite 資料庫中的輕量且快速的 ORM 解決方案。 其優點還包括以下幾點: 1.存取速度快;  2.支援資料庫加密;  3.輕量級;  4.啟用實體;  5.支援快取;  6.程式碼自動生成; 7.greenDAO 支援 pr

Android 資料庫框架 —— GreenDao

package cn.hlq.greendaostudy.entity; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Id; import org.greenrobot

Android資料庫框架greenDao學習筆記 2

引言 上篇部落格中介紹了greenDao的整合方式,這篇部落格,我們介紹如何使用greenDao建立我們需要的資料表。補一張圖(來自官網),來理解greenDao,大家意會吧。 註解 先上一張圖,來對greenDao的註解有一個直觀的認識: Schema 通過在Gr

Android資料庫框架設計一

前言Android開發中我們或多或少都會接觸到資料庫。Android中提供了一個佔用記憶體極小的關係型資料庫-SQLite。雖然Android系統中提供了許多操作SQLite的API,但是我們還是需要手動去編寫SQL語句,這經常會出現一些莫名其妙的問題。所以便出現了許多ORM

LitePal——Android資料庫框架完整使用手冊

LitePal for Android LitePal是一個開源的Android庫,使開發人員使用SQLite資料庫非常簡單。您無需編寫任何SQL語句就可以完成大部分資料庫操作,包括建立或升級表,增、刪、改、查操作,合計函式等。LitePal的設定也很簡單,您只許5分中

Android開發——資料庫框架Suger遇到的大坑(依據列名查詢不到資料解決辦法)

Android開發——資料庫框架Suger遇到的大坑(依據列名查詢不到資料解決辦法) JavaBean命名出現大寫,資料無法正常儲存(用的是Suger第二種操作方式,第一種沒有測試) 習慣中對Bean中變數的命名會出現大寫字母,但使用Suger操作這樣的資料會出現問題,比如我這樣命名

Android開發——資料庫框架Suger遇到的大坑(Gson和Suger的複用Bean請見“大坑三”)

Android開發——資料庫框架Suger遇到的大坑(Gson和Suger的複用Bean請見“大坑三”) 大坑一 自己寫了一個Demo按照官網以及GitHub上Suger的使用步驟完整走下來,Demo閃退,以插入資料為例 User user = new User("liao",

Android 資料庫ORM框架——GreenDao

最近在對開發專案的效能進行優化。由於專案裡涉及了大量的快取處理和資料庫運用,需要對資料庫進行頻繁的讀寫、查詢等操作。因此首先想到了對整個專案的資料庫框架進行優化。 原先使用android本身內建的sqllite,也就是用的最基本的SQLiteOpenHelper方法,這種方法對自己來說比較方便易懂。但是

android 手把手教你寫資料庫框架(第一篇)

前言:當你想成為什麼樣的人,努力朝目標努力,終究有一天會實現,人生最大的快樂就是不斷追尋夢想的過程 準備寫一個數據庫框架,現在的專案中資料庫框架是用三方orm,不知道是不是叫這個名字,不重要了,準備這段時間把這資料庫框架寫出來,也許寫的不夠好,沒關係,只要堅持住總會比之前

Android 手寫資料庫框架

前言 在Android開發中,一定會遇到資料庫sqlit的操作的,如果你的專案中沒有用到資料庫那麼說明你的專案很失敗。 一般我們可以直接使用系統提供的sqlit操作完成資料庫的操作,同時也可以使用現在比較多的資料庫開源框架,比如GreenDAO OrmLi

Android資料庫ORM框架用法、原始碼和效能比較分析

基本用法 LitePal LitePal是一款開源的Android資料庫框架,它採用了物件關係對映(ORM)的模式,LitePal很“輕”,jar包只有100k不到,使用起來也比較簡單,原始碼地址為Github地址。 首先需要引入lib,可以通過g

Android ORM 框架:GreenDao 資料庫升級

前言 一,GreenDao 預設的升級方式 GreenDao 預設的升級方式是刪除所有舊版,在重新建新表,這樣一來使用者的本地歷史資料則會丟失,這點我們通過DaoMaster 的內部類 DevOpenHelper 原始碼可以瞭解到。

Android 資料庫ORM開源框架之greenDAO

我相信,在平時的開發過程中,大家一定會或多或少地接觸到 SQLite。然而在使用它時,我們往往需要做許多額外的工作,像編寫 SQL 語句與解析查詢結果等。所以,適用於 Android 的ORM 框架也就孕育而生了,現在市面上主流的框架有 OrmLite、Suga