您好,登錄后才能下訂單哦!
前言
正好項目用了這種數據存儲方式,特地寫一篇加深印象,在我看來,LitePal是使用最簡單,集成最方便的數據庫,沒有之一。
LitePal 簡介
LitePal 是一款開源的 Android 數據庫框架,它采用了對象關系映射(ORM)的模式,將我們平時使用的一些數據庫(比如 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 , 創建一個 assets 目錄,在該目錄下新建一個 litepal.xml 文件,編輯內容如下:
<?xml version="1.0" encoding="utf-8"?> <litepal> <dbname value="hskj_user" /> <version value="1" /> <list></list> </litepal>
說明: <dbname>用于設定數據庫的名字,可以隨便起名,我這里是hskj_user,<version>用于設定數據庫的版本號,<list>用于設定所有的映射模型,我們稍后就會用到。
第三步
配置 LitePalApplication,這里有2種方法:
①如果項目的Application沒有繼承其他的Application,可以按照下面方式寫:
public class MyApplication extends LitePalApplication { ... }
②由于我的項目集成了MultiDexApplication,如下:
所以我選擇了第二種方式配置,在application中的onCreate()配置
@Override public void onCreate() { super.onCreate(); LitePal.initialize(this); }
經過上面的步驟已經將 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>
現在我們就可以測試了,啟動一個 Activity ,我這里只添加了一個按鈕,在其點擊事件下寫下面一句代碼:
LitePal.getDatabase();
等運行成功之后,可以打開Android Device Monitor查看是否創建成功了。如圖:
可以看到剛剛成功創建的hskj_user數據庫了。
這里我暫時只演示下數據存儲和刪除吧,可以在自己工程中新建一個類,來對LitePal數據庫操作,我是這樣寫的:
/** * 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(*),就能成功保存數據庫,
刪除所有數據時候調用:SearchHistroyDao.cleanChanels()即可。好了,LitePal數據講解完成。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。