參考: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/