Android數(shù)據(jù)庫 —— LitePal的基本用法

前言
正好項目用了這種數(shù)據(jù)存儲方式,特地寫一篇加深印象,在我看來,LitePal是使用最簡單,集成最方便的數(shù)據(jù)庫,沒有之一。

LitePal 簡介
LitePa它采用了對象關系映射(ORM)的模式,將我們平時使用的一些數(shù)據(jù)庫(比如 Sqlite)功能進行了封裝。

配置

第一步
gradle注入:

 compile 'org.litepal.android:core:1.6.1'

這里我的版本是1.6.1的,如果想獲得最新版本,請看這里:https://github.com/LitePalFramework/LitePal

第二步
接著需要配置 litepal.xml 文件,在 app/src/main 目錄右鍵 -> New -> Directory , 創(chuàng)建一個 assets 目錄,在該目錄下新建一個 litepal.xml 文件,編輯內容如下:

 <?xml version="1.0" encoding="utf-8"?>
 <litepal>
      <dbname value="hskj_user" />
      <version value="1" />
      <list></list>
 </litepal>

說明: <dbname>用于設定數(shù)據(jù)庫的名字,可以隨便起名,我這里是hskj_user,<version>用于設定數(shù)據(jù)庫的版本號,<list>用于設定所有的映射模型,我們稍后就會用到。

第三步
配置 LitePalApplication,這里有2種方法:
①如果項目的Application沒有繼承其他的Application,可以按照下面方式寫:

 public class MyApplication extends LitePalApplication {  
        ...  
 }  

②由于我的項目集成了MultiDexApplication,如下:
截圖.png

所以我選擇了第二種方式配置,在application中的onCreate()配置

@Override
public void onCreate() {
   super.onCreate();
   LitePal.initialize(this);
}

經(jīng)過上面的步驟已經(jīng)將 LitePal 配置完成,接下里開始建表

import org.litepal.crud.DataSupport;
/**
  * Created by zjp on 2018/1/16 16:22.
  */           
public class TestEntity  extends DataSupport {

    private int id; 
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
       this.id = id;
    }

    public int getAge() {
       return age;
    }

    public void setAge(int age) {
       this.age = age;
    }
}

其實這就是一個 JavaBean ,定義了兩個簡單的屬性,其中id這個字段可寫可不寫,因為即使不寫這個字段,LitePal也會在表中自動生成一個id列,畢竟每張表都一定要有主鍵的。

建好了表之后,接下來還需要將它添加到我們的模型列表中:

 <?xml version="1.0" encoding="utf-8"?>
 <litepal>
      <dbname value="hskj_user" />
      <version value="1" />
      <list>
            <mapping class="com.example.zjp.litepaldemo.bean.TestEntity"></mapping>
      </list>
 </litepal>

現(xiàn)在我們就可以測試了,啟動一個 Activity ,我這里只添加了一個按鈕,在其點擊事件下寫下面一句代碼:

  LitePal.getDatabase();  

等運行成功之后,可以打開Android Device Monitor查看是否創(chuàng)建成功了。如圖:
截圖.png

可以看到剛剛成功創(chuàng)建的hskj_user數(shù)據(jù)庫了。

這里我暫時只演示下數(shù)據(jù)存儲和刪除吧,可以在自己工程中新建一個類,來對LitePal數(shù)據(jù)庫操作,我是這樣寫的:

/**
  * Created by zjp on 2018/1/12 10:01.
  */
 public class SearchHistroyDao {
     /**
       * 獲取所有頻道
       *
       * @return
       */
       public static List<TestEntity> getChannels() {
            return DataSupport.findAll(TestEntity.class);
       }
     
      /**
        * 保存年齡關鍵字
        */
        public static void saveHistoryKeyword(int ageVal) {
             if (ageVal == 0) return;
             TestEntity testEntity = new TestEntity();
             testEntity.age = ageVal;
             testEntity.save();
        }

        /**
          * 清空所有頻道
          */
         public static void cleanChanels() {
              DataSupport.deleteAll(TestEntity.class);
         }
 }


調用SearchHistroyDao.saveHistoryKeyword()可以成功保存數(shù)據(jù)
不過還有另一種方法(不推薦)

//ContentValues cv = new ContentValues();
//cv.put("age", 25);
//db.insert("TestEntity", null, cv);

然后在你要保存數(shù)據(jù)的時候,調用SearchHistroyDao.saveHistoryKeyword(*),就能成功保存數(shù)據(jù)庫
刪除所有數(shù)據(jù)時候調用:SearchHistroyDao.cleanChanels()即可。好了,LitePal數(shù)據(jù)講解完成。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容