LitePal的使用——Android开源数据库
本文知識點
1. LitePal的集成
- 引入相應(yīng)的類庫
- 創(chuàng)建litepal.xml
- 更換繼承的Application
1.1 引入相應(yīng)的類庫
//litepal數(shù)據(jù)庫implementation 'org.litepal.guolindev:core:3.2.3'1.2 創(chuàng)建litepal.xml
litepal.xml是在assets文件夾下,
項目main路徑下New->Folder->AssetsFolder就可以創(chuàng)建相應(yīng)的assets文件夾,
然后在assets文件夾下創(chuàng)建一個相應(yīng)的litepal.xml文件夾。
- dbname標簽是相應(yīng)的數(shù)據(jù)庫名稱
- version標簽是相應(yīng)的數(shù)據(jù)庫的版本 (當里面引用的內(nèi)容發(fā)生改變的時候,要升級相應(yīng)的版本)
- list標簽?zāi)男ο笮枰獢?shù)據(jù)庫管理 (mapping里面的路徑一定要是全路徑名稱) (list標簽中的實體類都應(yīng)該繼承LitePalSupport這個類)
1.3 更換繼承的Application
(1)已經(jīng)有繼承的Application
(2)直接繼承LitePalApplication
(1)已經(jīng)有繼承的Application
直接在Application的onCreate方法中對數(shù)據(jù)庫進行初始化
@Overridepublic void onCreate() {super.onCreate();//數(shù)據(jù)庫初始化LitePal.initialize(this);}(2)直接繼承LitePalApplication
直接繼承相應(yīng)的LitePalApplication這里就不用在onCreate()中調(diào)用LitePal.initialize(this);
在application標簽中添加Application的時候要這樣寫
android:name="org.litepal.LitePalApplication"
2.LitePal中實現(xiàn)增刪改查
2.1 新增數(shù)據(jù)
使用save()方法
Book book = new Book(); book.setAuthor("王天一"); book.setName("王天一的第一本書"); book.save();2.2 刪除數(shù)據(jù)
delete()或者deleteAll()進行刪除
Book book = new Book(); book.setAuthor("王天二"); book.setName("王天二的第一本書"); book.save(); book.delete(); //刪除book表中price=44.6786的這條數(shù)據(jù) LitePal.deleteAll(Book.class, "name = ?", "王天二");2.3 更新數(shù)據(jù)
1、更改完相應(yīng)的數(shù)據(jù)直接save保存
2、updateAll方法實現(xiàn)
2.4 查詢數(shù)據(jù)
主要用到find()和findAll()等相應(yīng)的方法、
//查詢所有數(shù)據(jù) List<Book> bookList = LitePal.findAll(Book.class);//查詢第一條數(shù)據(jù) Book firstBook = LitePal.findFirst(Book.class);//查詢最后一條數(shù)據(jù) Book lastBook = LitePal.findLast(Book.class);//按照條件查詢 //(1)select()方法用于指定查詢哪幾列的數(shù)據(jù),對應(yīng)sql中的select關(guān)鍵字 List<Book> books = LitePal.select("name", "author").find(Book.class);//(2) where()用于指定查詢的約束條件,對應(yīng)了sql中的where關(guān)鍵字 List<Book> books1 = LitePal.where("page > ?", "100").find(Book.class);//(3) order()方法用于指定結(jié)果的排序方式,對應(yīng)了sql當中的order by 關(guān)鍵字 List<Book> books2 = LitePal.order("price desc").find(Book.class);//(4) limint()方法用于指定查詢結(jié)果的數(shù)量 List<Book> books3 = LitePal.limit(3).find(Book.class);//查詢表中前3條數(shù)據(jù)//(5)offset() 方法用于指定查詢結(jié)果的偏移量 List<Book> books4 = LitePal.limit(3).offset(1).find(Book.class);//查詢表中第2條、第3條、第4條數(shù)據(jù)//(6) 組合使用查詢 List<Book> books5 = LitePal.select("name", "author").where("page > ?", "100").order("price").limit(3).offset(2).find(Book.class);//查詢Book表中第3~5條滿足page>100頁這個條件的name、author這兩列數(shù)據(jù),并且查詢結(jié)果按照price升序排序//LitePal使用原聲SQL查詢 Cursor cursor = LitePal.findBySQL("select * form Book where page > ? and price < ?", "100", "60");3.LitePal常用的API
- 查詢第一條數(shù)據(jù)
LitePal.findFirst(Book.class); - 查詢最后一條數(shù)據(jù)
LitePal.findLast(Book.class); - select()方法用于指定查詢哪幾列的數(shù)據(jù),對應(yīng)sql中的select關(guān)鍵字 LitePal.select(“name”,“author”).find(Book.class);
- where()用于指定查詢的約束條件,對應(yīng)了sql中的where關(guān)鍵字
LitePal.where(“page > ?”, “100”).find(Book.class); - order()方法用于指定結(jié)果的排序方式,對應(yīng)了sql當中的order by 關(guān)鍵字 LitePal.order(“price desc”).find(Book.class);
- limint()方法用于指定查詢結(jié)果的數(shù)量
LitePal.limit(3).find(Book.class);//查詢表中前3條數(shù)據(jù) - offset() 方法用于指定查詢結(jié)果的偏移量
LitePal.limit(3).offset(1).find(Book.class);//查詢表中第2條、第3條、第4條數(shù)據(jù)
總結(jié)
以上是生活随笔為你收集整理的LitePal的使用——Android开源数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV图像分割-watershed
- 下一篇: SpringSource通过Spring