Android框架--DBFlow

为什么用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)));   }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值