Android框架--DBFlow

来源:互联网 发布:下载3dmax软件 编辑:程序博客网 时间:2024/05/21 14:47

为什么用DBFlow

DBFlow使用比较简单,正好自己项目要用到就学习下,基本没什么难度,DBFlow封装的很好了一些简单配置就可以使用,感觉没什么写的,不过要记录自己整个项目过程还是写一下吧.
简单3步就可以满足正常使用了

1.配置

buildscript {  repositories {    jcenter()  }  dependencies {    classpath 'com.android.tools.build:gradle:2.0.0-beta6'    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'  }}allprojects {  repositories {    jcenter()    maven { url "https://jitpack.io" }//关键配置  }}
apply plugin: 'com.android.application'apply plugin: 'com.neenbedankt.android-apt'def dbflow_version = "3.0.0-beta4"android {  compileSdkVersion 23  buildToolsVersion "23.0.2"  defaultConfig {    applicationId "cn.taoweiji.dbflowexample"    minSdkVersion 14    targetSdkVersion 23    versionCode 1    versionName "1.0"  }  buildTypes {    release {      minifyEnabled false      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }  }}dependencies {  compile fileTree(dir: 'libs', include: ['*.jar'])  apt "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的onCreate对DBFlow进行初始化

public class MyApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        FlowManager.init(this);    }}

3.使用

定义数据库

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

创建数据库对象

@ModelContainer@Table(database = AppDatabase.class)public class People extends BaseModel {    //自增ID    @PrimaryKey(autoincrement = true)    public Long id;    @Column    public String name;    @Column    public int gender;}

完成后执行build->Make Project就可以生成
具体使用代码(下面代码可以直接运行看到效果,常规的增删改查,事务、批量保存)

public class DbActivity extends AppCompatActivity {    //绑定TextView    @BindView(R.id.test)    TextView test;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);    }    @OnClick(R.id.test)    public void testt() {        add();    }    public void add() {        People people = new People();        people.gender = 1;        people.name = "w";        people.save();        Toast.makeText(this, String.valueOf(people.id), Toast.LENGTH_SHORT).show();    }    public void find() {        List<People> peoples2 = new Select().from(People.class).where(People_Table.gender.eq(1)).queryList();        String s = "";        for (int i = 0; i < peoples2.size(); i++) {            s =s+ "+"+ peoples2.get(i).name;        }        Toast.makeText(this, s, Toast.LENGTH_SHORT).show();    }    public void test() {        List<People> peoples = new ArrayList<>();        for (int i = 0; i < 10; i++) {            People people = new People();            people.name = "ww";            people.gender = 1;            peoples.add(people);        }//实时保存,马上保存        new SaveModelTransaction<>(ProcessModelInfo.withModels(peoples)).onExecute();//异步保存,使用异步,如果立刻查询可能无法查到结果//TransactionManager.getInstance().addTransaction(new SaveModelTransaction<>(ProcessModelInfo.withModels(peoples)));   }    }
0 0
原创粉丝点击