Android數(shù)據(jù)庫LitePal的基本用法詳解
前言
正好項(xiàng)目用了這種數(shù)據(jù)存儲方式,特地寫一篇加深印象,在我看來,LitePal是使用最簡單,集成最方便的數(shù)據(jù)庫,沒有之一。
LitePal 簡介
LitePal 是一款開源的 Android 數(shù)據(jù)庫框架,它采用了對象關(guān)系映射(ORM)的模式,將我們平時(shí)使用的一些數(shù)據(jù)庫(比如 Sqlite)功能進(jìn)行了封裝。
配置
第一步
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)建一個(gè) assets 目錄,在該目錄下新建一個(gè) litepal.xml 文件,編輯內(nèi)容如下:
<?xml version="1.0" encoding="utf-8"?> <litepal> <dbname value="hskj_user" /> <version value="1" /> <list></list> </litepal>
說明: <dbname>用于設(shè)定數(shù)據(jù)庫的名字,可以隨便起名,我這里是hskj_user,<version>用于設(shè)定數(shù)據(jù)庫的版本號,<list>用于設(shè)定所有的映射模型,我們稍后就會用到。
第三步
配置 LitePalApplication,這里有2種方法:
①如果項(xiàng)目的Application沒有繼承其他的Application,可以按照下面方式寫:
public class MyApplication extends LitePalApplication {
...
}
②由于我的項(xiàng)目集成了MultiDexApplication,如下:

所以我選擇了第二種方式配置,在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;
}
}
其實(shí)這就是一個(gè) JavaBean ,定義了兩個(gè)簡單的屬性,其中id這個(gè)字段可寫可不寫,因?yàn)榧词共粚戇@個(gè)字段,LitePal也會在表中自動生成一個(gè)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)在我們就可以測試了,啟動一個(gè) Activity ,我這里只添加了一個(gè)按鈕,在其點(diǎn)擊事件下寫下面一句代碼:
LitePal.getDatabase();
等運(yùn)行成功之后,可以打開Android Device Monitor查看是否創(chuàng)建成功了。如圖:

可以看到剛剛成功創(chuàng)建的hskj_user數(shù)據(jù)庫了。
這里我暫時(shí)只演示下數(shù)據(jù)存儲和刪除吧,可以在自己工程中新建一個(gè)類,來對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);
}
/**
* 保存年齡關(guān)鍵字
*/
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);
}
}
然后在你要保存數(shù)據(jù)的時(shí)候,調(diào)用SearchHistroyDao.saveHistoryKeyword(*),就能成功保存數(shù)據(jù)庫,
刪除所有數(shù)據(jù)時(shí)候調(diào)用:SearchHistroyDao.cleanChanels()即可。好了,LitePal數(shù)據(jù)講解完成。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android ViewPager導(dǎo)航小圓點(diǎn)實(shí)現(xiàn)無限循環(huán)效果
這篇文章主要為大家詳細(xì)介紹了Android ViewPager導(dǎo)航小圓點(diǎn)實(shí)現(xiàn)無限循環(huán)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Android學(xué)習(xí)項(xiàng)目之簡易版微信為例(二)
這篇文章主要以簡易版微信為例,實(shí)現(xiàn)簡易版微信的登陸、注冊界面的編寫與簡單交互,感興趣的小伙伴們可以參考一下2016-06-06
Flutter配置代理抓包實(shí)現(xiàn)過程詳解
這篇文章主要為大家介紹了Flutter配置代理抓包實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
NestScrollView嵌套RecyclerView實(shí)現(xiàn)淘寶首頁滑動效果
這篇文章主要介紹了NestScrollView嵌套RecyclerView實(shí)現(xiàn)淘寶首頁滑動效果,主要實(shí)現(xiàn)淘寶首頁嵌套滑動,中間tab吸頂效果,以及介紹NestScrollView嵌套RecyclerView處理滑動沖突的方法,需要的朋友可以參考下2021-12-12
Android?NDK開發(fā)之FFmpeg視頻添加水印
這篇文章主要介紹了在Android?NDK開發(fā)中如何通過FFmpeg為視頻添加水印,文中的示例代碼講解詳細(xì),對我們了解Android開發(fā)有一定的幫助,感興趣的可以學(xué)習(xí)一下2021-12-12
Android AndBase框架使用封裝好的函數(shù)完成Http請求(三)
這篇文章主要介紹了Android AndBase框架使用封裝好的函數(shù)完成Http請求的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-03-03

