最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android bdflow數(shù)據(jù)庫神器的使用

 更新時間:2018年03月29日 09:29:07   作者:WilliamIT  
這篇文章主要介紹了Android bdflow數(shù)據(jù)庫神器的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

今日觀看別人源碼的時候偶然間發(fā)現(xiàn)了一個很好用的數(shù)據(jù)庫神器,在這里分享一下。

什么是dbflow?

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

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

為什么使用dbflow?

1、 速度

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

2、 擴展性

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

3、 查詢語句

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

4、 基于sqlite

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

5、 開源

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

怎么使用dbflow

配置環(huán)境

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

首先在主要的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);

創(chuàng)建數(shù)據(jù)庫

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

使用注解Database,name數(shù)據(jù)庫名稱 version數(shù)據(jù)庫版本

創(chuàng)建表單

@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從屬數(shù)據(jù)庫對象,表單屬性使用各類注解,PrimaryKey主鍵,Colum列。

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

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

插入:

創(chuàng)建一個表單對象,賦值完,調(diào)用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();

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java返回json請求中文變成問號的問題及解決

    java返回json請求中文變成問號的問題及解決

    這篇文章主要介紹了java返回json請求中文變成問號的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java匿名內(nèi)部類的使用方法舉例詳解

    Java匿名內(nèi)部類的使用方法舉例詳解

    Java中的匿名內(nèi)部類是一種沒有名字的局部內(nèi)部類,主要用于一次性實現(xiàn)接口或繼承類的場合,它們常見于GUI事件處理、多線程編程等場景,簡化代碼結構同時提高開發(fā)效率,需要的朋友可以參考下
    2024-09-09
  • JavaWeb組件Servlet使用實例解析

    JavaWeb組件Servlet使用實例解析

    這篇文章主要介紹了JavaWeb組件Servlet使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java 覆蓋equals時總要覆蓋hashcode

    Java 覆蓋equals時總要覆蓋hashcode

    這篇文章主要介紹了Java 覆蓋equals時總要覆蓋hashcode的相關資料,這里附有實例代碼,具有參考價值,需要的朋友可以參考下
    2016-12-12
  • IntelliJ IDEA 2020.3 重大特性(新功能一覽)

    IntelliJ IDEA 2020.3 重大特性(新功能一覽)

    這篇文章主要介紹了IntelliJ IDEA 2020.3 重大特性(新功能一覽),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 淺析java 循序與二元搜索算法

    淺析java 循序與二元搜索算法

    這篇文章主要簡單介紹了java 循序與二元搜索算法,需要的朋友可以參考下
    2015-02-02
  • 使用session實現(xiàn)簡易購物車功能

    使用session實現(xiàn)簡易購物車功能

    這篇文章主要為大家詳細介紹了使用session實現(xiàn)簡易購物車功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • springSecurity實現(xiàn)簡單的登錄功能

    springSecurity實現(xiàn)簡單的登錄功能

    這篇文章主要為大家詳細介紹了springSecurity實現(xiàn)簡單的登錄功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 解決一個JSON反序列化問題的辦法(空字符串變?yōu)榭占?

    解決一個JSON反序列化問題的辦法(空字符串變?yōu)榭占?

    在平時的業(yè)務開發(fā)中,經(jīng)常會有拿到一串序列化后的字符串要來反序列化,下面這篇文章主要給大家介紹了如何解決一個JSON反序列化問題的相關資料,空字符串變?yōu)榭占?需要的朋友可以參考下
    2024-03-03
  • Java的Spring框架中AOP項目的一般配置和部署教程

    Java的Spring框架中AOP項目的一般配置和部署教程

    這篇文章主要介紹了Java的Spring框架中AOP項目的一般配置和部署教程,AOP面向方面編程的項目部署結構都比較類似,因而也被看作是Spring的一種設計模式使用,需要的朋友可以參考下
    2016-04-04

最新評論

溆浦县| 安顺市| 于田县| 营口市| 民丰县| 河曲县| 罗田县| 桓仁| 禹城市| 砚山县| 成安县| 交口县| 屏南县| 凤翔县| 根河市| 修文县| 广灵县| 景宁| 历史| 辽中县| 通化县| 界首市| 宜昌市| 恩平市| 盐津县| 罗城| 景洪市| 四川省| 永福县| 平和县| 夏邑县| 宣威市| 鄢陵县| 灵石县| 玛曲县| 海原县| 贵阳市| 诸暨市| 白山市| 盈江县| 沁阳市|