日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

LitePal的使用——Android开源数据库

發(fā)布時間:2023/12/10 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LitePal的使用——Android开源数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文知識點

  • LitePal的集成
  • LitePal實現(xiàn)數(shù)據(jù)庫的增刪改查
  • LitePal常用的API
  • 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文件夾。

    <?xml version="1.0" encoding="utf-8"?> <litepal><!--數(shù)據(jù)庫名--><dbname value="BookStore" /><!--數(shù)據(jù)庫版本號--><version value="1" /><!--映射模型--><list><mapping class="com.fw.androidone.sqlitelitepal.entity.Book" /></list> </litepal>
    • 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)

    //方式一:對已經(jīng)存儲的數(shù)據(jù)進行更新 Book book = new Book(); book.setAuthor("王天二"); book.setName("王天二的第一本書"); book.save(); // 重新修改價格,然后點用save方法, // 此時,litapal數(shù)據(jù)庫中會發(fā)現(xiàn)該數(shù)據(jù)之前已經(jīng)存儲在數(shù)據(jù)庫中,所以進行更新價格操作。而不會重新插入一條數(shù)據(jù)。 book.setName("王天三"); book.save(); //方式二:updateAll方法實現(xiàn) Book book1 = new Book(); book1.setPrice(44.6786); book1.updateAll("name = ? and author = ?", "王天二的第一本書", "王天二");

    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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。