Android實現本地手機數據庫存儲數據最簡單的方法:LitePal

1、前言

很多做android開發的肯定都知道android有幾個數據存儲方式,這裏就不細說其它的了,今天跟大家講的是android使用本地數據庫存儲數據,不過提到手機本地數據庫存儲,很多人都知道使用SQLiteDataase來操作SQLite數據庫,很多人也都有用過,不過要自己寫的出來這些sql語句,還是需要懂一些數據庫的增刪查改的語句的,我相信不少程序員應該不會sql的增刪改查的一些語句。當然不絕對,畢竟好學的人還是大有人在的!不會當你在android端去寫哪些sql語句的時候,你會覺得好用嗎?每個人的回答可能不一樣,不會今天看完本篇內容後,相信你將再也不想去碰SQLiteDatabase了!

2、今天介紹的是使用開源庫 --- LitePal

    1):LitePal 是一款開源的android數據庫框架,它採用了對象關係映射(ORM)的模式,將我們平時用的數據庫功能進行了封裝,使大家不用編寫一句sql語句就可以完成各種建表和增刪查改的操作。

    正式使用:

3、配置LitePal

    1): 首先在app/build.gradle文件下的dependencies閉包中添加依賴:

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

這樣我們就算是吧LitePal成功引入到當前項目中了,接下來需要配置 litepal.xml 文件。我們右擊app/src/main 目錄---> New----> Directory,
創建一個 assets 目錄,然後在assets 目錄下再新建一個litepal.xml文件,接着編輯 litepal.xml 文件中的內容,如下:

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

其中,<dbname> 標籤是用於指定數據庫名,<version> 標籤用於指定數據庫版本號,<list> 標籤用於指定所有的映射模型,

稍候會用到。

最後我們還需要配置一下 LitePalApplication ,修改AndroidManifest.xml 中的代碼,在 <application> 標籤中把android:name=""中的內容改爲org.litepal.LitePalApplication,注意:有的人會說我項目中已經有別的application了,也不用擔心,可以直接修改我們自己的MyApplication 的類,讓它集成LitePalApplication 即可,不影響的,在AndroidManifest.xml中就不用修改了,因爲我們需要在開始啓動項目時讓LitePal的所有功能都能正常工作,好了,下面就可以直接使用它了。

4、創建數據庫和升級數據庫

    1)之前創建數據庫需要自定義類集成SQLiteOpenHelper等等,這裏就完全不用那麼麻煩了,這裏是使用對象關係映射模型,,不過不要小看這個對象關係映射模型,它就是可以用面向對象的思維來操作數據庫,不需要sql語句了,做法如下:

        2)首先我們爲了創建一張UserInfo表,先看錶中有哪些字段,也就是哪些列,然後用最簡單的最常用的方法就是定義一個UserInfo實體類,如下:

class UserInfo{
    private int id;
    private String userName;
    private int age;
    private String sex;

    public int getId() {
        return id;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

這是一個典型的Javabean,在UserInfo 類中定義了幾個字段,並生產相應的getter和setter方法,而UserInfo類就會對應數據庫中的UserInfo表,而類中的每一個字段分別對應了表中的每一列,這就是對象關係映射最直觀的體驗,

3)

接下來我們需要將UserInfo類添加到映射模型列表中,修改litepal.xml 中的代碼,如下:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="User"></dbname>
    <version value="1"></version>
    <list>
        <mapping class="com.ydys.goods.model.UserInfo"></mapping>
    </list>
</litepal>

這裏使用<mapping> 標籤來聲明我們需要配置映射的映射模型類,注意需要使用完整的類名。不管有多少模型類都需要映射,都使用同樣的方式配置在<list>標籤下面即可。

4)

好了,這樣就已經把所有的工作完成了,現在我們只需要進行任意一次數據庫的操作,User.db 數據庫就會自動創建出來,現在我們來完成MainActivity中的代碼:

MainActivity中的具體代碼就不寫了,很簡單,就是在對應佈局下面頂一個Button按鈕,在activity中給它監聽事件,在點擊事件中寫上下面一句代碼: 

LitePal.getDatabase(); 這樣一句代碼就直接把數據庫創建出來了,一句代碼搞定。是不是很牛叉???到目前爲止你覺得
和之前的那種方式比哪種方便?大家心裏很清楚了吧?

不過現在數據庫是創建好了,但是沒法通過控制檯查看已創建好的數據庫,因爲現在的手機查看需要root權限,不過不用管它,因爲在手機裏面確實已經創建好了,後面可以一步一步驗證,那就是通過創建好的數據庫把我們添加的數據取出來,後面慢慢來說。

5)增加字段: 如果在寫好後發現字段少了,怎麼辦?很簡單,直接在創建好的Javabean中在加一個字段,寫上get和set方法,然後在 litepal.xml文件中把 <version>標籤的value值改爲 2 即可,只需要在原來的版本基礎上加1即可;然後重新運行程序,在點擊一下按鈕數據庫的升級添加字段的功能就完成了。

    如果想在創建一個表,同樣的方法,在新建一個Javabean,然後在litepal.xml中配置上映射就行了,然後運行點擊ok,記得改版本號。

5、添加數據

    1)向表中添加數據其實也很簡單,如下:

    *** 說明在添加數據之前先重點說明一下,要想通過實體類添加數據,必須要讓你的實體類,也就是Javabean 繼承 DataSupport ,必須要繼承,在此聲明,不要忘記

    下面開始添加數據:

UserInfo userInfo = new UserInfo();
userInfo.setUserName("張三");
userInfo.setAge(25);
userInfo.setSex("男");
userInfo.save(); 

好了,添加數據就完成了,看到有什麼不同了嗎?就是通過實體類set數據即可,然後最後一步用對象調用  .save() 方法,就可以了。有人會問,不是有一個id嗎?其實我們不用管它,id也就是表的主鍵,如果我們不給定這個id字段的話,數據庫創建會自動給生成這樣一個id字段,如果給了就按照這個id最爲表的主鍵,而且這個主鍵id是自增長的,所以不用管,後面如果想對標進行查改刪等,通過id就可以實現了,所以我覺得id我們給出來好一些,後面好拿這個id操作數據庫。

6、使用LitePal查詢數據

    使用LitePal查詢數據也是非常大的方便,一行代碼搞定:

    List<UserInfo> lists = DataSupport.findAll(UserInfo.class);

 這樣就拿到了剛纔添加的一條數據,通過DataSupport的findAll方法通過傳入的參數爲即可查詢指定表的數據,返回值爲一個UserInfo類型集合,是不是很方便啊?

   它還可以單獨查第一條數據:UserInfo firstInfo = DataSupport.findFirst(UserInfo.class);

它還有其它方法,大家可以去試試,

7、刪除數據

    刪除數據通過:DataSupport.deleteAll(UserInfo.class,"id<?","5");  這句代碼是通過約束條件來刪除的,刪除id < 5的數據,這裏就舉這一個例子,其它的大家通過DataSupport的delete其它方法根據參數去處理即可,

8、LitePal還有修改數據,這個和增加增加數據有些相似,比如:

    UserInfo  info = new UserInfo();

    info.setSex("女");

    info.updateAll("id=?","1");

    即可做到修改id爲1的數據,性別改爲“女”等等,

總結:到這裏爲止,LitePal的介紹就算基本結束了,大家只要認真看到,照着敲一遍,很容易的,比之前的那種方式是不是簡單粗暴?關於DataSupport中海油一些其它的方法操作數據庫的,大家可以自己去試試,這裏就對它的基本使用先介紹到這裏了!希望對所有android開發者有幫助,,,

如果大家覺得對你幫助,一定要把好東西分享出去哦,,,

***** 轉載請標明出處,謝謝! ****

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章