今日观看别人源码的时候偶然间发现了一个很好用的数据库神器,在这里分享一下。
1
什么是Dbflow
dbflow是Android SQLite ORM的一个使用注解操控的工具库。简单说就是对sqlite数据库进行操作的一个java库。
ORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
2为什么使用Dbflow
1、速度
基于AnnotationProcessing(注解处理器),在编译时生成代码,运行时性能优良,通过复用对象以及缓存机制,得到不错的速度体验。
2、扩展性
数据表单映射到数据对象,通过该对象继承Model类,一般的话继承BaseModel类就可以,对类内成员添加注解生成所需要的表单。
3、查询语句
如果你使用过greenDao等其他的库的话,查询语句都非常接近SQL语句。
4、基于sqlite
不限制平台,有sqlite的地方就可以使用dbflow。
5、开源
源码是个好东西,有能力的人可以看看。https://github.com/Raizlabs/DBFlow
3
怎么使用Dbflow
配置环境
不管是想学习什么东西,环境就是个主要东西,那对于一个三方库来说第一步就是导入类库。
首先在主要的build.gradle中添加maven地址:
allprojects {
repositories {
maven { url"https://jitpack.io"}
}
}
其次在基类module中添加依赖:
defdbflow_version ="4.2.4"
dependencies {
annotationProcessor"com.github.Raizlabs.DBFlow:dbflow-processor:$"
compile"com.github.Raizlabs.DBFlow:dbflow-core:$"
compile"com.github.Raizlabs.DBFlow:dbflow:$"
compile"com.github.Raizlabs.DBFlow:dbflow-rx2:$"
compile"com.github.Raizlabs.DBFlow:dbflow-sqlcipher:$"
}
如果需要添加kotlin的代码的话查看上文的源码地址下方有说明。
使用
在Application中添加init
FlowManager.init(this);
创建数据库
@Database(name= DbFlowData.DBNAME,version= DbFlowData.VERSION)
public classDbFlowData {
public static finalStringDBNAME="DbFlowData";
public static final intVERSION=1;
}
使用注解Database,name数据库名称version数据库版本
创建表单
@Table(database= DbFlowData.class)
public classDbFlowModelextendsBaseModel {
@PrimaryKey(autoincrement=true)
public intid;
@Column
publicStringname;
public intgetId() {
returnid;
}
public voidsetId(intid) {
this.id= id;
}
publicStringgetName() {
returnname;
}
public voidsetName(String name) {
this.name= name;
}
}
使用注解Table database从属数据库对象,表单属性使用各类注解,PrimaryKey主键,Colum列。
注意:这里我们继承的BaseModel是DBFlow给我们提供的,是可以不继承的,差别仅仅增删改查的操作上有所不同。
创建完后,点击Build->make,会在..\build\generated\source\apt\debug下生成必要代码。
插入:
创建一个表单对象,赋值完,调用save方法即可插入操作。
DbFlowModel dbFlowModel =newDbFlowModel();
dbFlowModel.name= name;
dbFlowModel.save();
删除:
类似于sql语句的代码进行操作
查询:
这个有很多复杂的查询操作,想知道详细的还是看官方文档。
List list = SQLite.select().from(DbFlowModel.class).queryList();
更新:
都是类似的。
注意:新建表单后,需要对数据库的version进行升级,不然会报错的。
这里主要简单的介绍一下dbflow的基本使用,主要用作分享和记录一些好用的东西。
感谢阅读。
领取专属 10元无门槛券
私享最新 技术干货