DBFlow框架学习

参考:https://www.jianshu.com/p/9fe0e179f5bf

   https://blog.csdn.net/imsunlight/article/details/79020874

 

1. 在gradle中添加 DBFlow的依赖

2. 在Application中 初始化 

  FlowManager.init(this);

3. 注意将Manifest中的application设置为初始化时使用的application

4. 创建数据库

  

// 使用注解声明数据库名和版本号
// 将其作为静态常量放在类中
@Database(name = AppDataBase.NAME,version = AppDataBase.VERSION)
public class AppDataBase {
    public static final String NAME="AppDataBase";
    public static final int VERSION=1;
}

 

5.创建表

// 用注解标明是数据库表,属于哪个数据库
// 成员变量前@Column 表示列
// 当前列继承 BaseModel,便于之后的使用
@Table(database = AppDataBase.class) public class User extends BaseModel { @PrimaryKey(autoincrement = true) private int id; @Column private String name; @Column private int age; @Column private long timeStamp; 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public long getTimeStamp() { return timeStamp; } public void setTimeStamp(long timeStamp) { this.timeStamp = timeStamp; } }

DBFlow 的CRUD操作非常便利


对一个User实例进行操作 , 有两种方式:
(1) 用Adapter进行操作
ModelAdapter<User>  adapter = FlowManager.getModelAdapter(User.class);
 adapter.save(user);
 adapter.update(user);
 adapter.delete(user);
(2) 如果表对应类继承了BaseModel 则可以直接操作
  user.save();
  user.update();
  user.delete();

   


使用SQLite批量操作 查询:   User user1 = SQLite.select()      .from(User.class) // 要查的表对应类      .where(User_Table.id.eq(1)) // User_Table为DBFLow自动生成的类,在编译过程中生成      .querySingle(); // 返回一条数据
删除:   SQLite.delete()      .from("表对应的类")      .where("条件")      .query(); //要删除整张表,可以使用:   Delete.table(User.class); 更新:   SQLite.update(User.class)     .set(User_Table.name.eq("DIO"),User_Table.age.eq(500))     .where(User_Table.id.eq(user.id))     .query();



 

在使用SQLite进行查询操作时,可以添加链式操作如:

  .orderBy()    //设置排序方式

  .limit()   // 限定最多查询数目

  .async()  // 进行异步查询

还有对返回查询列表进行操作的回调接口  :  

    .queryListResultCallback(//此处放入QueryResultListCallback接口)

    .execute();

    

 

如果要增加表,创建完对应的类之后,还要修改Appdatabase的版本号,如果不修改,则会有 no such table 错误

 

 

 

 

 

 

 DBFlow : https://github.com/agrosner/DBFlow

    https://agrosner.gitbooks.io/dbflow/content/

转载于:https://www.cnblogs.com/xfdmyghdx/p/10500685.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值