您的位置:首页 > 移动开发 > Android开发

Android中数据库操作框架DBFlow介绍与使用

2018-02-06 13:51 591 查看
首先添加依赖:

annotationProcessor 'com.github.Raizlabs.DBFlow:dbflow-processor:4.2.4'
compile 'com.github.Raizlabs.DBFlow:dbflow-core:4.2.4'
compile 'com.github.Raizlabs.DBFlow:dbflow:4.2.4'


需要创建一个application文件,在onCrete()方法中初始化

//DBFlow初始化配置
FlowManager.init(getApplicationContext());


这样整个配置就完成了,下面我们来看看如何使用

第一,创建数据库

我们需要自己创建一个数据库,定义数据库名称,版本号

@Database(name = DBFlowDatabase.NAME, version = DBFlowDatabase.VERSION)
public class DBFlowDatabase {
//数据库名称
public static final String NAME = "DBFlowDatabase";
//数据库版本号
public static final int VERSION = 1;
}


其次创建model文件

@Table(database = DBFlowDatabase.class)
public class User extends BaseModel {
@Column
public String userName;
@Column
public String addr;
@Column
public int age;

@PrimaryKey(autoincrement = true)//ID自增
public long userId;

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getAddr() {
return addr;
}

public void setAddr(String addr) {
this.addr = addr;
}

@Override
public String toString() {
return "User{" +
"userName='" + userName + '\'' +
", addr='" + addr + '\'' +
", age=" + age +
", userId=" + userId +
'}';
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public long getUserId() {
return userId;
}

public void setUserId(long userId) {
this.userId = userId;
}
}


这里简单介绍下,必须继承BaseModel,BaseModel包含了基本的数据库操作(save、delete、update、insert、exists),可以发现这个表是关联上面定义的数据库,UserModel 的id是自增的id(autoincrement )。

一个正确的数据表类需要以下几项: 对类添加@Table注解 声明所连接的数据库类,这里是DBFlowDatabase。 定义至少一个主键。

这个类和这个类中数据库相关列的修饰符必须是包内私有或者public。 这样生成的_Adapter类能够访问到它。 NOTE:

列(Column)属性可以是private,但这样就必须指定公有public的getter和setter方法。

创建完成后,需要编译一下,点击编译按钮,或者Build->Make Project即可,它会自动生成一些数据库文件,也会提示你创建是否有误!

然后,就是重头戏,怎么使用增删改查

User user = new User();

user.setAddr("信阳");
user.setAge(28);
user.setUserName("张飞");
user.save();

//people.update();//更新对象
//people.delete();//删除对象
//people.insert();//插入对象


查询:

List<User> users = SQLite.select()
.from(User.class)
.where(User_Table.age.greaterThan(18))
.queryList();
查询全部:

List<User> users=new Select().from(User.class).queryList()


代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: