Android bdflow數(shù)據(jù)庫神器的使用
今日觀看別人源碼的時候偶然間發(fā)現(xiàn)了一個很好用的數(shù)據(jù)庫神器,在這里分享一下。
什么是dbflow?
dbflow是Android SQLite ORM的一個使用注解操控的工具庫。簡單說就是對sqlite數(shù)據(jù)庫進行操作的一個java庫。
ORM(Object-relational mapping),中文翻譯為對象關系映射,是一種為了解決面向?qū)ο笈c關系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。簡單的說,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方法即可插入操作。
刪除:
類似于sql語句的代碼進行操作
SQLite.*delete*() .from(DbFlowModel.class) .where(DbFlowModel_Table.*id*.eq(id), DbFlowModel_Table.*name*.eq(name)) .execute();
查詢:
這個有很多復雜的查詢操作,想知道詳細的還是看官方文檔。
更新:
都是類似的。
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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android kotlin+協(xié)程+Room數(shù)據(jù)庫的簡單使用
- Android SQLite數(shù)據(jù)庫連接實現(xiàn)登錄功能
- Android連接MySQL數(shù)據(jù)庫并進行增刪改查操作示例講解
- Android Studio連接SQLite數(shù)據(jù)庫的登錄注冊實現(xiàn)
- Android如何通過命令行操作Sqlite3數(shù)據(jù)庫的方法
- android studio3.0以上如何通過navicat訪問SQLite數(shù)據(jù)庫文件
- Android Studio3.6.3 當前最新版本數(shù)據(jù)庫查找與導出方法(圖文詳解)
- Android如何獲取QQ與微信的聊天記錄并保存到數(shù)據(jù)庫詳解
- Android開發(fā)實現(xiàn)的導出數(shù)據(jù)庫到Excel表格功能【附源碼下載】
- Android Room數(shù)據(jù)庫多表查詢的使用實例
- 詳細介紹Android-Room數(shù)據(jù)庫的使用
- Android 架構(gòu)之數(shù)據(jù)庫框架搭建
相關文章
IntelliJ IDEA 2020.3 重大特性(新功能一覽)
這篇文章主要介紹了IntelliJ IDEA 2020.3 重大特性(新功能一覽),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
解決一個JSON反序列化問題的辦法(空字符串變?yōu)榭占?
在平時的業(yè)務開發(fā)中,經(jīng)常會有拿到一串序列化后的字符串要來反序列化,下面這篇文章主要給大家介紹了如何解決一個JSON反序列化問題的相關資料,空字符串變?yōu)榭占?需要的朋友可以參考下2024-03-03

