亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android bdflow數據庫神器的使用

發布時間:2020-10-16 17:46:40 來源:腳本之家 閱讀:261 作者:WilliamIT 欄目:編程語言

今日觀看別人源碼的時候偶然間發現了一個很好用的數據庫神器,在這里分享一下。

什么是dbflow?

dbflow是Android SQLite ORM的一個使用注解操控的工具庫。簡單說就是對sqlite數據庫進行操作的一個java庫。

ORM(Object-relational mapping),中文翻譯為對象關系映射,是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

為什么使用dbflow?

1、 速度

基于AnnotationProcessing(注解處理器),在編譯時生成代碼,運行時性能優良,通過復用對象以及緩存機制,得到不錯的速度體驗。

2、 擴展性

數據表單映射到數據對象,通過該對象繼承Model類,一般的話繼承BaseModel類就可以,對類內成員添加注解生成所需要的表單。

3、 查詢語句

如果你使用過greenDao等其他的庫的話,查詢語句都非常接近SQL語句。

4、 基于sqlite

不限制平臺,有sqlite的地方就可以使用dbflow。

5、 開源

源碼是個好東西,有能力的人可以看看。https://github.com/Raizlabs/DBFlow

怎么使用dbflow

配置環境

不管是想學習什么東西,環境就是個主要東西,那對于一個三方庫來說第一步就是導入類庫。

首先在主要的build.gradle中添加maven地址:

allprojects {
 repositories {
     maven { url "https://jitpack.io" } }
}

其次在基類module中添加依賴:

復制代碼 代碼如下:

def dbflow_version = "4.2.4" dependencies {     annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}" compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}" compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}" compile "com.github.Raizlabs.DBFlow:dbflow-rx2:${dbflow_version}" compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}" }

如果需要添加kotlin的代碼的話查看上文的源碼地址下方有說明。

使用

在Application中添加init

FlowManager.*init*(this);

創建數據庫

@Database(name = DbFlowData.*DBNAME*,version = DbFlowData.*VERSION*) 
public class DbFlowData {
 public static final String *DBNAME*="DbFlowData";
 public static final int *VERSION*=1; 
}

使用注解Database,name數據庫名稱 version數據庫版本

創建表單

@Table(database = DbFlowData.class)
 public class DbFlowModel extends BaseModel { 
@PrimaryKey(autoincrement = true) public int id; 
@Column public String name;

 public int getId() { return id; } 
public void setId(int id) { this.id = id; } 
public String getName() { return name; } 
public void setName(String name) { this.name = name; }

}

使用注解Table database從屬數據庫對象,表單屬性使用各類注解,PrimaryKey主鍵,Colum列。

注意:這里我們繼承的 BaseModel 是 DBFlow 給我們提供的,是可以不繼承的,差別僅僅增刪改查的操作上有所不同。

創建完后,點擊Build->make,會在..\build\generated\source\apt\debug下生成必要代碼。

插入:

創建一個表單對象,賦值完,調用save方法即可插入操作。

復制代碼 代碼如下:
DbFlowModel dbFlowModel = new DbFlowModel(); dbFlowModel.name = name; dbFlowModel.save();

刪除:

類似于sql語句的代碼進行操作

SQLite.*delete*()
 .from(DbFlowModel.class)
 .where(DbFlowModel_Table.*id*.eq(id), DbFlowModel_Table.*name*.eq(name))
 .execute();

查詢:

這個有很多復雜的查詢操作,想知道詳細的還是看官方文檔。

復制代碼 代碼如下:
List<DbFlowModel> list = SQLite.*select*().from(DbFlowModel.class).queryList();

更新:

都是類似的。

SQLite.*update*(DbFlowModel.class)
 .set(DbFlowModel_Table.*name*.eq("PXXXX"))
 .where(DbFlowModel_Table.*name*.eq("P0000"))
 .execute();

注意:新建表單后,需要對數據庫的version進行升級,不然會報錯的。

這里主要簡單的介紹一下dbflow的基本使用,主要用作分享和記錄一些好用的東西,

源碼:https://github.com/xiaogoudandan/WilliamApp

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡水市| 贵溪市| 正镶白旗| 高清| 洮南市| 凌海市| 松原市| 兴文县| 唐山市| SHOW| 明星| 滦平县| 基隆市| 北川| 金阳县| 广平县| 本溪| 桐梓县| 鹤壁市| 南靖县| 新巴尔虎左旗| 石家庄市| 临澧县| 曲周县| 茂名市| 鄂托克旗| 六枝特区| 厦门市| 汉阴县| 南安市| 谷城县| 西宁市| 丹东市| 昌图县| 揭西县| 大关县| 剑阁县| 铜川市| 甘德县| 洛扎县| 濮阳市|