美文网首页
DBFlow 初步使用

DBFlow 初步使用

作者: 山水泽 | 来源:发表于2019-03-06 11:05 被阅读0次

DBflow是android 上使用的比较多的一个开源数据库,其特点是使用注解完成大部分内容的工作。以下是如何在Android 应用开发中使用dbflow,开发环境为Android Studio,语言为Java

项目中导入DBflow

  • 首先在project的build.gradle中 添加jitpack.io,添加代码如下:

    allProjects {
      repositories {
        google()
        maven { url "https://www.jitpack.io" }
      }
    }
    
  • 在module的build.gradle的dependencies中添加dbflow的依赖

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

新建数据库和表

接下来开始构建数据库和表。首先创建数据库,代码如下:

import com.raizlabs.android.dbflow.annotation.Database;
@Database(name =  PlanetPlanDB.name, version = PlanetPlanDB.version)
public class PlanetPlanDB {
    public static final String name = "planetplan";
    public static final  int version = 1;
}

其中使用@Database注解定义数据库的名称和版本

接着创建一张表,代码如下

@Table(database = AppDatabase.class)
// 继承BaseModel可以基于User对象直接进行CRUD操作
public class User extends BaseModel {

  @PrimaryKey // at least one primary key required
  UUID id;
  @Column
  String name;
  @Column
  int age;
}

其中使用@Table 指定database的class为之前创建的database

要在Android App正常使用必须在Application中添加一下代码:

public class MyApp extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    // 添加该行代码
    FlowManager.init(this);
  }
}

以上就完成了表,数据库的创建,应用可以使用dbflow进行数据的CRUD操作了

数据的CRUD

对User的CRUD操作,代码如下:

User user = new User();
user.id = UUID.randomUUID();
user.name = "Andrew Grosner";
user.age = 27;

user.insert();// 插入user
user.update();// 更新user
user.delete();// 删除user

user.save(); // 保存user
// 查询user
List<User> users = SQLite.select()
                .from(User.class)
                .where(User_Table.age.greaterThan(18))
                .queryList();

以上代码中:

  • save() 首先会判断数据库中是否存在user主键,如果存在则调用update(), 如果不存在则调用insert(). 该部分代码逻辑在com.raizlabs.android.dbflow.sql.saveable.ModelSaver中实现

  • User_Table为dbflow自动生成的类,继承了ModelAdapter类,主要实现对User对象的操作的sql语句等功能

  • where() 参数为SQLOperator对象,SQLOperator为接口,BaseOperator实现了该接口,com.raizlabs.android.dbflow.sql.language.Operator继承了BaseOperator, 其中有dbflow支持的operator操作

以上为DBFlow的初步介绍

相关文章

  • DBFlow 初步使用

    DBflow是android 上使用的比较多的一个开源数据库,其特点是使用注解完成大部分内容的工作。以下是如何在A...

  • DBFlow的初步使用

    前言 最近刚好有点时间,就想重温一下 Android 数据库的相关知识。以前一直使用 GreenDao,感觉操作...

  • DBFlow基础篇

    为什么使用DBFlow DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sp...

  • DBFlow使用

    DBFlow优点介绍 DBFlow的设计吸取了其他很多ORM框架中好的特征,并将之做得更好。它很灵活,让你能更专注...

  • DBFlow使用

    PS: 都说DBFlow使用,话说,真的有人在实际开发中使用这个数据库框架么? 问题一: 如何修改数据表中字段的类...

  • DBFlow的使用

    这段时间有一些感悟:技术的发展必须适应主流的市场需求,不能只是一直闷头提高技术,更应该走出去与更多人员进行交流,(...

  • DBFlow使用篇

    需要在Application的onCreate对DBFlow进行初始化 public class MyApplic...

  • DbFlow sqlcipher 加密存储

    前言 在学习Dbflow的使用过程中,发现官方文档没有对其加密的方式进行说明,遂进行了总结DbFlow可以通过加入...

  • Android数据库框架DBFlow的使用

    DBFlow Android最好用的数据库框架——DBFLOW全面解析 DBFlow 是一个基于注解处理器开发的使...

  • FlexBoxLayout结合DBFlow 实现流式布局

    前言 上一篇文章介绍了 DBFlow 的一些简单操作,这一次将继续使用 DBFlow 完成数据的存储。当然这一次我...

网友评论

      本文标题:DBFlow 初步使用

      本文链接:https://www.haomeiwen.com/subject/chqtpqtx.html