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開發者有幫助,,,
如果大家覺得對你幫助,一定要把好東西分享出去哦,,,
***** 轉載請標明出處,謝謝! ****