android dbflow教程,Android 数据库DbFlow的使用

Android 数据库DbFlow的使用

为什么要使用DbFlow

DBFlow的设计吸取了其他很多ORM框架中好的特征,并将之做得更好。它很灵活,让你能更专注于App中真正需要关注的地方。不要让一个ORM库限制了你的思维,而是让代码在你的App中工作得更好。

使用步骤:

添加仓库托管地址

allProjects {

repositories {

// required to find the project’s artifacts

maven { url “www.jitpack.io” }

}

}

在moudel的build.gradle中添加

def dbflow_version = "4.2.4"

annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"

compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"

compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"复制代码

2.代码中使用

在Application中初始化Dbflow

public class App extends Application{

@Override

public void onCreate() {

super.onCreate();

FlowManager.init(this);

}

}复制代码

创建一个数据库

@Database(name = AppDataBase.NAME, version = AppDataBase.VERSION)

public class AppDataBase {

public static final String name = "dbflowDataBase";

public static final int VERSION = 1;

}复制代码

创建表

@Table(database = AppDatabase.class)

public class User extends BaseModel {

@PrimaryKey(autoincrement = true)

public long id;

@Column

public String name;

@Column

public int age;

public void insertData(String name,int age){

this.name=name;

this.age = age;

}

}复制代码

保存一条数据

User mUser = new User();

String name = mEtName.getText().toString();

String age = mEtAge.getText().toString();

mUser.insertData(name, Integer.parseInt(age));

// dbflow 保存数据

boolean save = mUser.save();

Toast.makeText(this, save ? "保存成功" : "添加失败", Toast.LENGTH_SHORT).show();复制代码

查询数据

List users = SQLite.select().from(User.class).queryList();// 查询所有记录

User user = SQLite.select().from(User.class).querySingle();// 查询第一条记录复制代码

删除数据

在where中可以添加删除条件,比如删除id等于1的,或者名字为张三的等等 都可以:

SQLite.delete()

.from(User.class)

.where(User_Table.id.eq(1))

.query();

如果删除整个表,可以这样:

Delete.table(User.class);复制代码

修改某条数据

例如删除名字叫小王,年龄为20的:

SQLite.update(User.class)

.set(User_Table.name.eq("小王"),User_Table.age.eq(20))

.where(User_Table.id.eq(user.id))

.query();复制代码

ok,Dbflow的增删改查方法就这么简单,也很好记忆,因为DBFlow的查询语法尽可能地和SQL语句相似,能更快上手,这也是我为什么要使用它的一个原因。除此之外,dbflow还有多表关联的知识,比如一对一,一对多,多对多等等,这些可以查看文档agrosner.gitbooks.io/dbflow/cont…

另外我写了一个demo,效果如下:

f5815b19479570feabc97e288407da37.gif

提供demo的地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值