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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LitePal数据存储

發布時間:2023/12/10 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LitePal数据存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LitePal數據存儲

    • 配置LitePal
    • 創建數據庫
    • 添加數據
    • 查詢數據
    • 更新數據
    • 刪除數據
    • 博客推薦

安卓之所以如此的受歡迎,不僅在于面向用戶的一系列產品,面向我們開發者同樣也非常友好。
GitHub上擁有成百上千的優秀Android開源項目,這使得很多時候我們開發時不用自己去編寫那些冗長的代碼,處理那些復雜的邏輯。調用一下幾分鐘就搞定,甚至比復制粘貼還容易。
那么我們一起來看一下這個開源庫——LitePal。

配置LitePal

首先在app/build.gradle文件的dependencies閉包中添加如下代碼,并Sync Now:

implementation 'org.litepal.android:java:3.0.0'

其中3.0.0是版本號,是目前最新的版本。

然后我們切換至Project文件管理模式,在app的src文件夾下的main文件夾處新建一個名為assets的Directory(選擇Directory類型),然后在assets文件夾下新建一個litepal.xml文件(選擇File類型,文件名為litepal.xml,后綴.xml也要打在文件名中),建好后添加如下代碼:

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

dbname標簽用于指定數據庫名,version標簽用于指定數據庫版本號,list標簽則用于指定所有的映射模型。

最后,我們再修改一下AndroidManifest.xml中的代碼,在<application下添加如下代碼:

<applicationandroid:name="org.litepal.LitePalApplication" //添加這一行代碼

創建數據庫

定義一個Book類,代碼如下:
(自動生成get和set:定義好變量后按Alt+Insert,然后在彈出的框內選中Getter and Setter,按下shift或ctrl鍵選中全部,最后點擊ok)

public class Book {private int id;private String author;private double price=0;private int pages=0;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getPages() {return pages;}public void setPages(int pages) {this.pages = pages;}public String getName() {return name;}public void setName(String name) {this.name = name;} }

接下來我們將Book類添加到映射模型當中,在litepal.xml的list標簽中加入代碼:

<list><mapping class="com.example.mylitepaltest.Book"></mapping>//添加這一句</list>

我們通過<mapping標簽聲明我們要配置的映射模型類。

最后,在MainActivity下添加如下代碼就完成了建表,也就是創建數據庫的過程:

LitePal.getDatabase();

添加數據

完成建表之后就要向表中添加數據。

修改Book類,使其繼承LitePalSupport:

public class Book extends LitePalSupport

然后設置一個Button按鈕用來添加數據:

<Buttonandroid:id="@+id/add_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="add"></Button>

在主函數中給按鈕注冊點擊監聽事件,并給待添加的數據進行賦值:

Button addData=findViewById(R.id.add_data); addData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Book book=new Book();book.setName("高等數學");book.setAuthor("同濟大學");book.setPages(337);book.setPrice(39.00);book.save();Book book2=new Book();book2.setName("線性代數");book2.setAuthor("同濟大學");book2.setPages(236);book2.setPrice(16.80);book2.save();} });

查詢數據

LitePal中的簡單查詢用法如下:

Object object = LitePal.findFirst(Object.class); //查詢表中第一條數據 Object object = LitePal.findLast(Object.class); //查詢表中最后一條數據 Object object = LitePal.find(Object.class,i); //查詢表中第i條數據 List<Object> objects = LitePal.findAll(Object.class, a, b, c, d); //查詢表中a,b,c,d條數據

LitePal中的連綴查詢用法如下:

// 查詢滿足某條件的每條數據 List<Object> objects = LitePal.where("條件", "值").find(Object.class); //查詢滿足某條件的對應數據的某些列 List<Object> objects = LitePal.select("列1", "列2").where("條件", "值").find(Object.class);

比如,在我們的BookStore表里,如果我們想查詢表中第一條數據,我們可以先設置一個按鈕,和一些顯示數據的文本,并在主函數中編寫如下代碼:

<Buttonandroid:id="@+id/simpleQuery_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="simpleQuery"></Button><Buttonandroid:id="@+id/adornmentQuery_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="adornmentQuery"></Button><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/name"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/author"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/price"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/pages"/> Button simpleQuery=findViewById(R.id.simpleQuery_data);simpleQuery.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Book book= LitePal.find(Book.class,1);display(book);}});

如果我們想查詢表中頁碼大于250頁的書的信息,我們可在主函數中編寫如下代碼:

Button adornmentQuery=findViewById(R.id.adornmentQuery_data);adornmentQuery.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Book book = LitePal.select("name","price").where("pages > ?","250").findFirst(Book.class);display(book);}});

在主函數中編寫一個display方法,用來展示書本信息:

public void display(Book book){name.setText(book.getName());author.setText(book.getAuthor());price.setText(""+book.getPrice());pages.setText(""+book.getPages());}

更新數據

如果我們想指定所有"name"為"高等數學"并且"author"為"同濟大學"的書書價更新為1,我們可以先通過set方法來更新我們想要修改的數據,然后通過updateAll()方法執行更新操作。

Button updateData=findViewById(R.id.update_data);updateData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Book book=new Book();book.setPrice(1);book.updateAll("name=? and author=?","高等數學","同濟大學");Book book1 = LitePal.where("name = ? and author=?","高等數學","同濟大學").findFirst(Book.class);display(book1);}});

刪除數據

在LitePal中刪除數據使用delete函數,用法如下

//刪除表中第i條數據 LitePal.delete(Object.class, i);

需要注意的是,這不僅僅會將表中id為2的記錄刪除,同時還會將其它表中以這條記錄作為外鍵的數據一起刪除掉,因為外鍵既然不存在了,那么這么數據也就沒有保留的意義了。(外鍵是指這條記錄在另一張表中是參考的基礎,在大家學完數據庫這門課程之后會有更多了解)

博客推薦

關于數據存儲,書上介紹了不止一種方法,并且更加詳細,每種方法都有其優缺,大家可以學習和體會。
這里推薦一下郭霖大神的博客
Android數據庫高手秘籍(零)——前言
http://blog.csdn.net/guolin_blog/article/details/38083103
Android數據庫高手秘籍(一)——SQLite命令
http://blog.csdn.net/guolin_blog/article/details/38461239
Android數據庫高手秘籍(二)——創建表和LitePal的基本用法
http://blog.csdn.net/guolin_blog/article/details/38556989
Android數據庫高手秘籍(三)——使用LitePal升級表
http://blog.csdn.net/guolin_blog/article/details/39151617
Android數據庫高手秘籍(四)——使用LitePal建立表關聯
http://blog.csdn.net/guolin_blog/article/details/39207945
Android數據庫高手秘籍(五)——LitePal的存儲操作
http://blog.csdn.net/guolin_blog/article/details/39345833
Android數據庫高手秘籍(六)——LitePal的修改和刪除操作
http://blog.csdn.net/guolin_blog/article/details/40083685
Android數據庫高手秘籍(七)——體驗LitePal的查詢藝術
http://blog.csdn.net/guolin_blog/article/details/40153833
Android數據庫高手秘籍(八)——使用LitePal的聚合函數
http://blog.csdn.net/guolin_blog/article/details/40614197

下面是迭代的版本:

2016-03-03 郭霖

LitePal 1.3.1發布了,從此支持圖片存儲!
http://mp.weixin.qq.com/s/7tDifDvOHr7YI7zCS9fpmQ

2016-11-15 郭霖

你們要的多數據庫功能終于來了
http://mp.weixin.qq.com/s/C7nbJXOS9lYPgOda-8Pw0A

2017-03-07 郭霖

LitePal 1.5.0版本發布,你想要的都在這里
http://mp.weixin.qq.com/s/GXPkrkiHk4MWNnpCLzTf_Q

2017-08-15

LitePal 1.6.0版本來襲,數據加解密功能保障你的應用數據安全
https://mp.weixin.qq.com/s/TSp36cnKLxUmAHjT86UCrQ

2018-06-11

Android數據庫高手秘籍(九),趕快使用LitePal 2.0版本吧
https://blog.csdn.net/guolin_blog/article/details/80586028

總結

以上是生活随笔為你收集整理的LitePal数据存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。