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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM